github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl@v0.2.0/awscryptographymaterialproviderssmithygenerated/to_dafny.go (about)

     1  // Code generated by smithy-go-codegen DO NOT EDIT.
     2  
     3  package awscryptographymaterialproviderssmithygenerated
     4  
     5  import (
     6  	"unicode/utf8"
     7  
     8  	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/comamazonawsdynamodbsmithygenerated"
     9  	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes"
    10  	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/KMSwrapped"
    11  	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/comamazonawskmssmithygenerated"
    12  	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes"
    13  	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes"
    14  	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographykeystoresmithygenerated"
    15  	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographykeystoresmithygeneratedtypes"
    16  	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/awscryptographymaterialproviderssmithygeneratedtypes"
    17  	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes"
    18  	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/awscryptographyprimitivessmithygenerated"
    19  	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/awscryptographyprimitivessmithygeneratedtypes"
    20  	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8"
    21  	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
    22  	"github.com/aws/aws-sdk-go-v2/service/kms"
    23  	kmstypes "github.com/aws/aws-sdk-go-v2/service/kms/types"
    24  	"github.com/aws/smithy-go"
    25  	"github.com/dafny-lang/DafnyRuntimeGo/v4/dafny"
    26  )
    27  
    28  func CreateAwsKmsDiscoveryKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsDiscoveryKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateAwsKmsDiscoveryKeyringInput {
    29  
    30  	return func() AwsCryptographyMaterialProvidersTypes.CreateAwsKmsDiscoveryKeyringInput {
    31  
    32  		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))
    33  	}()
    34  
    35  }
    36  
    37  func CreateAwsKmsDiscoveryMultiKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsDiscoveryMultiKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateAwsKmsDiscoveryMultiKeyringInput {
    38  
    39  	return func() AwsCryptographyMaterialProvidersTypes.CreateAwsKmsDiscoveryMultiKeyringInput {
    40  
    41  		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 {
    42  			if (nativeInput.ClientSupplier) == nil {
    43  				return Wrappers.Companion_Option_.Create_None_()
    44  			}
    45  			return Wrappers.Companion_Option_.Create_Some_(ClientSupplier_ToDafny(nativeInput.ClientSupplier))
    46  		}(), Aws_cryptography_materialProviders_CreateAwsKmsDiscoveryMultiKeyringInput_grantTokens_ToDafny(nativeInput.GrantTokens))
    47  	}()
    48  
    49  }
    50  
    51  func CreateAwsKmsEcdhKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsEcdhKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateAwsKmsEcdhKeyringInput {
    52  
    53  	return func() AwsCryptographyMaterialProvidersTypes.CreateAwsKmsEcdhKeyringInput {
    54  
    55  		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))
    56  	}()
    57  
    58  }
    59  
    60  func CreateAwsKmsHierarchicalKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsHierarchicalKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateAwsKmsHierarchicalKeyringInput {
    61  
    62  	return func() AwsCryptographyMaterialProvidersTypes.CreateAwsKmsHierarchicalKeyringInput {
    63  
    64  		return AwsCryptographyMaterialProvidersTypes.Companion_CreateAwsKmsHierarchicalKeyringInput_.Create_CreateAwsKmsHierarchicalKeyringInput_(Aws_cryptography_materialProviders_CreateAwsKmsHierarchicalKeyringInput_branchKeyId_ToDafny(nativeInput.BranchKeyId), func() Wrappers.Option {
    65  			if (nativeInput.BranchKeyIdSupplier) == nil {
    66  				return Wrappers.Companion_Option_.Create_None_()
    67  			}
    68  			return Wrappers.Companion_Option_.Create_Some_(BranchKeyIdSupplier_ToDafny(nativeInput.BranchKeyIdSupplier))
    69  		}(), 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))
    70  	}()
    71  
    72  }
    73  
    74  func CreateAwsKmsKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateAwsKmsKeyringInput {
    75  
    76  	return func() AwsCryptographyMaterialProvidersTypes.CreateAwsKmsKeyringInput {
    77  
    78  		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))
    79  	}()
    80  
    81  }
    82  
    83  func CreateAwsKmsMrkDiscoveryKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsMrkDiscoveryKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkDiscoveryKeyringInput {
    84  
    85  	return func() AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkDiscoveryKeyringInput {
    86  
    87  		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))
    88  	}()
    89  
    90  }
    91  
    92  func CreateAwsKmsMrkDiscoveryMultiKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsMrkDiscoveryMultiKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkDiscoveryMultiKeyringInput {
    93  
    94  	return func() AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkDiscoveryMultiKeyringInput {
    95  
    96  		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 {
    97  			if (nativeInput.ClientSupplier) == nil {
    98  				return Wrappers.Companion_Option_.Create_None_()
    99  			}
   100  			return Wrappers.Companion_Option_.Create_Some_(ClientSupplier_ToDafny(nativeInput.ClientSupplier))
   101  		}(), Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryMultiKeyringInput_grantTokens_ToDafny(nativeInput.GrantTokens))
   102  	}()
   103  
   104  }
   105  
   106  func CreateAwsKmsMrkKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsMrkKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkKeyringInput {
   107  
   108  	return func() AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkKeyringInput {
   109  
   110  		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))
   111  	}()
   112  
   113  }
   114  
   115  func CreateAwsKmsMrkMultiKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsMrkMultiKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkMultiKeyringInput {
   116  
   117  	return func() AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkMultiKeyringInput {
   118  
   119  		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 {
   120  			if (nativeInput.ClientSupplier) == nil {
   121  				return Wrappers.Companion_Option_.Create_None_()
   122  			}
   123  			return Wrappers.Companion_Option_.Create_Some_(ClientSupplier_ToDafny(nativeInput.ClientSupplier))
   124  		}(), Aws_cryptography_materialProviders_CreateAwsKmsMrkMultiKeyringInput_grantTokens_ToDafny(nativeInput.GrantTokens))
   125  	}()
   126  
   127  }
   128  
   129  func CreateAwsKmsMultiKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsMultiKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMultiKeyringInput {
   130  
   131  	return func() AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMultiKeyringInput {
   132  
   133  		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 {
   134  			if (nativeInput.ClientSupplier) == nil {
   135  				return Wrappers.Companion_Option_.Create_None_()
   136  			}
   137  			return Wrappers.Companion_Option_.Create_Some_(ClientSupplier_ToDafny(nativeInput.ClientSupplier))
   138  		}(), Aws_cryptography_materialProviders_CreateAwsKmsMultiKeyringInput_grantTokens_ToDafny(nativeInput.GrantTokens))
   139  	}()
   140  
   141  }
   142  
   143  func CreateAwsKmsRsaKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateAwsKmsRsaKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateAwsKmsRsaKeyringInput {
   144  
   145  	return func() AwsCryptographyMaterialProvidersTypes.CreateAwsKmsRsaKeyringInput {
   146  
   147  		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))
   148  	}()
   149  
   150  }
   151  
   152  func CreateCryptographicMaterialsCacheInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateCryptographicMaterialsCacheInput) AwsCryptographyMaterialProvidersTypes.CreateCryptographicMaterialsCacheInput {
   153  
   154  	return func() AwsCryptographyMaterialProvidersTypes.CreateCryptographicMaterialsCacheInput {
   155  
   156  		return AwsCryptographyMaterialProvidersTypes.Companion_CreateCryptographicMaterialsCacheInput_.Create_CreateCryptographicMaterialsCacheInput_(Aws_cryptography_materialProviders_CreateCryptographicMaterialsCacheInput_cache_ToDafny(nativeInput.Cache))
   157  	}()
   158  
   159  }
   160  
   161  func CreateDefaultClientSupplierInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateDefaultClientSupplierInput) AwsCryptographyMaterialProvidersTypes.CreateDefaultClientSupplierInput {
   162  
   163  	return func() AwsCryptographyMaterialProvidersTypes.CreateDefaultClientSupplierInput {
   164  
   165  		return AwsCryptographyMaterialProvidersTypes.Companion_CreateDefaultClientSupplierInput_.Create_CreateDefaultClientSupplierInput_()
   166  	}()
   167  
   168  }
   169  
   170  func CreateDefaultCryptographicMaterialsManagerInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateDefaultCryptographicMaterialsManagerInput) AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput {
   171  
   172  	return func() AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput {
   173  
   174  		return AwsCryptographyMaterialProvidersTypes.Companion_CreateDefaultCryptographicMaterialsManagerInput_.Create_CreateDefaultCryptographicMaterialsManagerInput_(Keyring_ToDafny(nativeInput.Keyring))
   175  	}()
   176  
   177  }
   178  
   179  func CreateMultiKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateMultiKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput {
   180  
   181  	return func() AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput {
   182  
   183  		return AwsCryptographyMaterialProvidersTypes.Companion_CreateMultiKeyringInput_.Create_CreateMultiKeyringInput_(func() Wrappers.Option {
   184  			if (nativeInput.Generator) == nil {
   185  				return Wrappers.Companion_Option_.Create_None_()
   186  			}
   187  			return Wrappers.Companion_Option_.Create_Some_(Keyring_ToDafny(nativeInput.Generator))
   188  		}(), Aws_cryptography_materialProviders_CreateMultiKeyringInput_childKeyrings_ToDafny(nativeInput.ChildKeyrings))
   189  	}()
   190  
   191  }
   192  
   193  func CreateRawAesKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateRawAesKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateRawAesKeyringInput {
   194  
   195  	return func() AwsCryptographyMaterialProvidersTypes.CreateRawAesKeyringInput {
   196  
   197  		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))
   198  	}()
   199  
   200  }
   201  
   202  func CreateRawEcdhKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateRawEcdhKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateRawEcdhKeyringInput {
   203  
   204  	return func() AwsCryptographyMaterialProvidersTypes.CreateRawEcdhKeyringInput {
   205  
   206  		return AwsCryptographyMaterialProvidersTypes.Companion_CreateRawEcdhKeyringInput_.Create_CreateRawEcdhKeyringInput_(Aws_cryptography_materialProviders_CreateRawEcdhKeyringInput_KeyAgreementScheme_ToDafny(nativeInput.KeyAgreementScheme), Aws_cryptography_materialProviders_CreateRawEcdhKeyringInput_curveSpec_ToDafny(nativeInput.CurveSpec))
   207  	}()
   208  
   209  }
   210  
   211  func CreateRawRsaKeyringInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateRawRsaKeyringInput) AwsCryptographyMaterialProvidersTypes.CreateRawRsaKeyringInput {
   212  
   213  	return func() AwsCryptographyMaterialProvidersTypes.CreateRawRsaKeyringInput {
   214  
   215  		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))
   216  	}()
   217  
   218  }
   219  
   220  func CreateRequiredEncryptionContextCMMInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CreateRequiredEncryptionContextCMMInput) AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput {
   221  
   222  	return func() AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput {
   223  
   224  		return AwsCryptographyMaterialProvidersTypes.Companion_CreateRequiredEncryptionContextCMMInput_.Create_CreateRequiredEncryptionContextCMMInput_(func() Wrappers.Option {
   225  			if (nativeInput.UnderlyingCMM) == nil {
   226  				return Wrappers.Companion_Option_.Create_None_()
   227  			}
   228  			return Wrappers.Companion_Option_.Create_Some_(CryptographicMaterialsManager_ToDafny(nativeInput.UnderlyingCMM))
   229  		}(), func() Wrappers.Option {
   230  			if (nativeInput.Keyring) == nil {
   231  				return Wrappers.Companion_Option_.Create_None_()
   232  			}
   233  			return Wrappers.Companion_Option_.Create_Some_(Keyring_ToDafny(nativeInput.Keyring))
   234  		}(), Aws_cryptography_materialProviders_CreateRequiredEncryptionContextCMMInput_requiredEncryptionContextKeys_ToDafny(nativeInput.RequiredEncryptionContextKeys))
   235  	}()
   236  
   237  }
   238  
   239  func DecryptionMaterials_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials) AwsCryptographyMaterialProvidersTypes.DecryptionMaterials {
   240  
   241  	return func() AwsCryptographyMaterialProvidersTypes.DecryptionMaterials {
   242  
   243  		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))
   244  	}()
   245  
   246  }
   247  
   248  func EncryptionMaterials_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials) AwsCryptographyMaterialProvidersTypes.EncryptionMaterials {
   249  
   250  	return func() AwsCryptographyMaterialProvidersTypes.EncryptionMaterials {
   251  
   252  		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))
   253  	}()
   254  
   255  }
   256  
   257  func GetAlgorithmSuiteInfoInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.GetAlgorithmSuiteInfoInput) dafny.Sequence {
   258  
   259  	return Aws_cryptography_materialProviders_GetAlgorithmSuiteInfoInput_binaryId_ToDafny(nativeInput.BinaryId)
   260  
   261  }
   262  
   263  func AlgorithmSuiteInfo_ToDafny(nativeOutput awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteInfo) AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo {
   264  
   265  	return func() AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo {
   266  
   267  		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))
   268  	}()
   269  
   270  }
   271  
   272  func InitializeDecryptionMaterialsInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.InitializeDecryptionMaterialsInput) AwsCryptographyMaterialProvidersTypes.InitializeDecryptionMaterialsInput {
   273  
   274  	return func() AwsCryptographyMaterialProvidersTypes.InitializeDecryptionMaterialsInput {
   275  
   276  		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))
   277  	}()
   278  
   279  }
   280  
   281  func InitializeEncryptionMaterialsInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.InitializeEncryptionMaterialsInput) AwsCryptographyMaterialProvidersTypes.InitializeEncryptionMaterialsInput {
   282  
   283  	return func() AwsCryptographyMaterialProvidersTypes.InitializeEncryptionMaterialsInput {
   284  
   285  		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))
   286  	}()
   287  
   288  }
   289  
   290  func ValidateCommitmentPolicyOnDecryptInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.ValidateCommitmentPolicyOnDecryptInput) AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnDecryptInput {
   291  
   292  	return func() AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnDecryptInput {
   293  
   294  		return AwsCryptographyMaterialProvidersTypes.Companion_ValidateCommitmentPolicyOnDecryptInput_.Create_ValidateCommitmentPolicyOnDecryptInput_(Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnDecryptInput_algorithm_ToDafny(nativeInput.Algorithm), Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnDecryptInput_commitmentPolicy_ToDafny(nativeInput.CommitmentPolicy))
   295  	}()
   296  
   297  }
   298  
   299  func ValidateCommitmentPolicyOnEncryptInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.ValidateCommitmentPolicyOnEncryptInput) AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnEncryptInput {
   300  
   301  	return func() AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnEncryptInput {
   302  
   303  		return AwsCryptographyMaterialProvidersTypes.Companion_ValidateCommitmentPolicyOnEncryptInput_.Create_ValidateCommitmentPolicyOnEncryptInput_(Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnEncryptInput_algorithm_ToDafny(nativeInput.Algorithm), Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnEncryptInput_commitmentPolicy_ToDafny(nativeInput.CommitmentPolicy))
   304  	}()
   305  
   306  }
   307  
   308  func ValidDecryptionMaterialsTransitionInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.ValidDecryptionMaterialsTransitionInput) AwsCryptographyMaterialProvidersTypes.ValidDecryptionMaterialsTransitionInput {
   309  
   310  	return func() AwsCryptographyMaterialProvidersTypes.ValidDecryptionMaterialsTransitionInput {
   311  
   312  		return AwsCryptographyMaterialProvidersTypes.Companion_ValidDecryptionMaterialsTransitionInput_.Create_ValidDecryptionMaterialsTransitionInput_(Aws_cryptography_materialProviders_ValidDecryptionMaterialsTransitionInput_start_ToDafny(nativeInput.Start), Aws_cryptography_materialProviders_ValidDecryptionMaterialsTransitionInput_stop_ToDafny(nativeInput.Stop))
   313  	}()
   314  
   315  }
   316  
   317  func ValidEncryptionMaterialsTransitionInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.ValidEncryptionMaterialsTransitionInput) AwsCryptographyMaterialProvidersTypes.ValidEncryptionMaterialsTransitionInput {
   318  
   319  	return func() AwsCryptographyMaterialProvidersTypes.ValidEncryptionMaterialsTransitionInput {
   320  
   321  		return AwsCryptographyMaterialProvidersTypes.Companion_ValidEncryptionMaterialsTransitionInput_.Create_ValidEncryptionMaterialsTransitionInput_(Aws_cryptography_materialProviders_ValidEncryptionMaterialsTransitionInput_start_ToDafny(nativeInput.Start), Aws_cryptography_materialProviders_ValidEncryptionMaterialsTransitionInput_stop_ToDafny(nativeInput.Stop))
   322  	}()
   323  
   324  }
   325  
   326  func GetBranchKeyIdInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.GetBranchKeyIdInput) AwsCryptographyMaterialProvidersTypes.GetBranchKeyIdInput {
   327  
   328  	return func() AwsCryptographyMaterialProvidersTypes.GetBranchKeyIdInput {
   329  
   330  		return AwsCryptographyMaterialProvidersTypes.Companion_GetBranchKeyIdInput_.Create_GetBranchKeyIdInput_(Aws_cryptography_materialProviders_GetBranchKeyIdInput_encryptionContext_ToDafny(nativeInput.EncryptionContext))
   331  	}()
   332  
   333  }
   334  
   335  func GetBranchKeyIdOutput_ToDafny(nativeOutput awscryptographymaterialproviderssmithygeneratedtypes.GetBranchKeyIdOutput) AwsCryptographyMaterialProvidersTypes.GetBranchKeyIdOutput {
   336  
   337  	return func() AwsCryptographyMaterialProvidersTypes.GetBranchKeyIdOutput {
   338  
   339  		return AwsCryptographyMaterialProvidersTypes.Companion_GetBranchKeyIdOutput_.Create_GetBranchKeyIdOutput_(Aws_cryptography_materialProviders_GetBranchKeyIdOutput_branchKeyId_ToDafny(nativeOutput.BranchKeyId))
   340  	}()
   341  
   342  }
   343  
   344  func BranchKeyIdSupplier_ToDafny(nativeResource awscryptographymaterialproviderssmithygeneratedtypes.IBranchKeyIdSupplier) AwsCryptographyMaterialProvidersTypes.IBranchKeyIdSupplier {
   345  	val, ok := nativeResource.(*BranchKeyIdSupplier)
   346  	if ok {
   347  		return val.Impl
   348  	}
   349  	return BranchKeyIdSupplier{&BranchKeyIdSupplierNativeWrapper{Impl: nativeResource}}.Impl
   350  
   351  }
   352  
   353  func GetClientInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.GetClientInput) AwsCryptographyMaterialProvidersTypes.GetClientInput {
   354  
   355  	return func() AwsCryptographyMaterialProvidersTypes.GetClientInput {
   356  
   357  		return AwsCryptographyMaterialProvidersTypes.Companion_GetClientInput_.Create_GetClientInput_(Aws_cryptography_materialProviders_GetClientInput_region_ToDafny(nativeInput.Region))
   358  	}()
   359  
   360  }
   361  
   362  func ClientSupplier_ToDafny(nativeResource awscryptographymaterialproviderssmithygeneratedtypes.IClientSupplier) AwsCryptographyMaterialProvidersTypes.IClientSupplier {
   363  	val, ok := nativeResource.(*ClientSupplier)
   364  	if ok {
   365  		return val.Impl
   366  	}
   367  	return ClientSupplier{&ClientSupplierNativeWrapper{Impl: nativeResource}}.Impl
   368  
   369  }
   370  
   371  func DeleteCacheEntryInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.DeleteCacheEntryInput) AwsCryptographyMaterialProvidersTypes.DeleteCacheEntryInput {
   372  
   373  	return func() AwsCryptographyMaterialProvidersTypes.DeleteCacheEntryInput {
   374  
   375  		return AwsCryptographyMaterialProvidersTypes.Companion_DeleteCacheEntryInput_.Create_DeleteCacheEntryInput_(Aws_cryptography_materialProviders_DeleteCacheEntryInput_identifier_ToDafny(nativeInput.Identifier))
   376  	}()
   377  
   378  }
   379  
   380  func GetCacheEntryInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.GetCacheEntryInput) AwsCryptographyMaterialProvidersTypes.GetCacheEntryInput {
   381  
   382  	return func() AwsCryptographyMaterialProvidersTypes.GetCacheEntryInput {
   383  
   384  		return AwsCryptographyMaterialProvidersTypes.Companion_GetCacheEntryInput_.Create_GetCacheEntryInput_(Aws_cryptography_materialProviders_GetCacheEntryInput_identifier_ToDafny(nativeInput.Identifier), Aws_cryptography_materialProviders_GetCacheEntryInput_bytesUsed_ToDafny(nativeInput.BytesUsed))
   385  	}()
   386  
   387  }
   388  
   389  func GetCacheEntryOutput_ToDafny(nativeOutput awscryptographymaterialproviderssmithygeneratedtypes.GetCacheEntryOutput) AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput {
   390  
   391  	return func() AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput {
   392  
   393  		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))
   394  	}()
   395  
   396  }
   397  
   398  func PutCacheEntryInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.PutCacheEntryInput) AwsCryptographyMaterialProvidersTypes.PutCacheEntryInput {
   399  
   400  	return func() AwsCryptographyMaterialProvidersTypes.PutCacheEntryInput {
   401  
   402  		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))
   403  	}()
   404  
   405  }
   406  
   407  func UpdateUsageMetadataInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.UpdateUsageMetadataInput) AwsCryptographyMaterialProvidersTypes.UpdateUsageMetadataInput {
   408  
   409  	return func() AwsCryptographyMaterialProvidersTypes.UpdateUsageMetadataInput {
   410  
   411  		return AwsCryptographyMaterialProvidersTypes.Companion_UpdateUsageMetadataInput_.Create_UpdateUsageMetadataInput_(Aws_cryptography_materialProviders_UpdateUsageMetadataInput_identifier_ToDafny(nativeInput.Identifier), Aws_cryptography_materialProviders_UpdateUsageMetadataInput_bytesUsed_ToDafny(nativeInput.BytesUsed))
   412  	}()
   413  
   414  }
   415  
   416  func CryptographicMaterialsCache_ToDafny(nativeResource awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsCache) AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache {
   417  	val, ok := nativeResource.(*CryptographicMaterialsCache)
   418  	if ok {
   419  		return val.Impl
   420  	}
   421  	return CryptographicMaterialsCache{&CryptographicMaterialsCacheNativeWrapper{Impl: nativeResource}}.Impl
   422  
   423  }
   424  
   425  func DecryptMaterialsInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.DecryptMaterialsInput) AwsCryptographyMaterialProvidersTypes.DecryptMaterialsInput {
   426  
   427  	return func() AwsCryptographyMaterialProvidersTypes.DecryptMaterialsInput {
   428  
   429  		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))
   430  	}()
   431  
   432  }
   433  
   434  func DecryptMaterialsOutput_ToDafny(nativeOutput awscryptographymaterialproviderssmithygeneratedtypes.DecryptMaterialsOutput) AwsCryptographyMaterialProvidersTypes.DecryptMaterialsOutput {
   435  
   436  	return func() AwsCryptographyMaterialProvidersTypes.DecryptMaterialsOutput {
   437  
   438  		return AwsCryptographyMaterialProvidersTypes.Companion_DecryptMaterialsOutput_.Create_DecryptMaterialsOutput_(Aws_cryptography_materialProviders_DecryptMaterialsOutput_decryptionMaterials_ToDafny(nativeOutput.DecryptionMaterials))
   439  	}()
   440  
   441  }
   442  
   443  func GetEncryptionMaterialsInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.GetEncryptionMaterialsInput) AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput {
   444  
   445  	return func() AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput {
   446  
   447  		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))
   448  	}()
   449  
   450  }
   451  
   452  func GetEncryptionMaterialsOutput_ToDafny(nativeOutput awscryptographymaterialproviderssmithygeneratedtypes.GetEncryptionMaterialsOutput) AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsOutput {
   453  
   454  	return func() AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsOutput {
   455  
   456  		return AwsCryptographyMaterialProvidersTypes.Companion_GetEncryptionMaterialsOutput_.Create_GetEncryptionMaterialsOutput_(Aws_cryptography_materialProviders_GetEncryptionMaterialsOutput_encryptionMaterials_ToDafny(nativeOutput.EncryptionMaterials))
   457  	}()
   458  
   459  }
   460  
   461  func CryptographicMaterialsManager_ToDafny(nativeResource awscryptographymaterialproviderssmithygeneratedtypes.ICryptographicMaterialsManager) AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManager {
   462  	val, ok := nativeResource.(*CryptographicMaterialsManager)
   463  	if ok {
   464  		return val.Impl
   465  	}
   466  	return CryptographicMaterialsManager{&CryptographicMaterialsManagerNativeWrapper{Impl: nativeResource}}.Impl
   467  
   468  }
   469  
   470  func OnDecryptInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.OnDecryptInput) AwsCryptographyMaterialProvidersTypes.OnDecryptInput {
   471  
   472  	return func() AwsCryptographyMaterialProvidersTypes.OnDecryptInput {
   473  
   474  		return AwsCryptographyMaterialProvidersTypes.Companion_OnDecryptInput_.Create_OnDecryptInput_(Aws_cryptography_materialProviders_OnDecryptInput_materials_ToDafny(nativeInput.Materials), Aws_cryptography_materialProviders_OnDecryptInput_encryptedDataKeys_ToDafny(nativeInput.EncryptedDataKeys))
   475  	}()
   476  
   477  }
   478  
   479  func OnDecryptOutput_ToDafny(nativeOutput awscryptographymaterialproviderssmithygeneratedtypes.OnDecryptOutput) AwsCryptographyMaterialProvidersTypes.OnDecryptOutput {
   480  
   481  	return func() AwsCryptographyMaterialProvidersTypes.OnDecryptOutput {
   482  
   483  		return AwsCryptographyMaterialProvidersTypes.Companion_OnDecryptOutput_.Create_OnDecryptOutput_(Aws_cryptography_materialProviders_OnDecryptOutput_materials_ToDafny(nativeOutput.Materials))
   484  	}()
   485  
   486  }
   487  
   488  func OnEncryptInput_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.OnEncryptInput) AwsCryptographyMaterialProvidersTypes.OnEncryptInput {
   489  
   490  	return func() AwsCryptographyMaterialProvidersTypes.OnEncryptInput {
   491  
   492  		return AwsCryptographyMaterialProvidersTypes.Companion_OnEncryptInput_.Create_OnEncryptInput_(Aws_cryptography_materialProviders_OnEncryptInput_materials_ToDafny(nativeInput.Materials))
   493  	}()
   494  
   495  }
   496  
   497  func OnEncryptOutput_ToDafny(nativeOutput awscryptographymaterialproviderssmithygeneratedtypes.OnEncryptOutput) AwsCryptographyMaterialProvidersTypes.OnEncryptOutput {
   498  
   499  	return func() AwsCryptographyMaterialProvidersTypes.OnEncryptOutput {
   500  
   501  		return AwsCryptographyMaterialProvidersTypes.Companion_OnEncryptOutput_.Create_OnEncryptOutput_(Aws_cryptography_materialProviders_OnEncryptOutput_materials_ToDafny(nativeOutput.Materials))
   502  	}()
   503  
   504  }
   505  
   506  func Keyring_ToDafny(nativeResource awscryptographymaterialproviderssmithygeneratedtypes.IKeyring) AwsCryptographyMaterialProvidersTypes.IKeyring {
   507  	val, ok := nativeResource.(*Keyring)
   508  	if ok {
   509  		return val.Impl
   510  	}
   511  	return Keyring{&KeyringNativeWrapper{Impl: nativeResource}}.Impl
   512  
   513  }
   514  
   515  func AwsCryptographicMaterialProvidersException_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.AwsCryptographicMaterialProvidersException) AwsCryptographyMaterialProvidersTypes.Error {
   516  	return func() AwsCryptographyMaterialProvidersTypes.Error {
   517  
   518  		return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(Aws_cryptography_materialProviders_AwsCryptographicMaterialProvidersException_message_ToDafny(nativeInput.Message))
   519  	}()
   520  
   521  }
   522  
   523  func EntryAlreadyExists_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.EntryAlreadyExists) AwsCryptographyMaterialProvidersTypes.Error {
   524  	return func() AwsCryptographyMaterialProvidersTypes.Error {
   525  
   526  		return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_EntryAlreadyExists_(Aws_cryptography_materialProviders_EntryAlreadyExists_message_ToDafny(nativeInput.Message))
   527  	}()
   528  
   529  }
   530  
   531  func EntryDoesNotExist_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.EntryDoesNotExist) AwsCryptographyMaterialProvidersTypes.Error {
   532  	return func() AwsCryptographyMaterialProvidersTypes.Error {
   533  
   534  		return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_EntryDoesNotExist_(Aws_cryptography_materialProviders_EntryDoesNotExist_message_ToDafny(nativeInput.Message))
   535  	}()
   536  
   537  }
   538  
   539  func InFlightTTLExceeded_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.InFlightTTLExceeded) AwsCryptographyMaterialProvidersTypes.Error {
   540  	return func() AwsCryptographyMaterialProvidersTypes.Error {
   541  
   542  		return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InFlightTTLExceeded_(Aws_cryptography_materialProviders_InFlightTTLExceeded_message_ToDafny(nativeInput.Message))
   543  	}()
   544  
   545  }
   546  
   547  func InvalidAlgorithmSuiteInfo_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.InvalidAlgorithmSuiteInfo) AwsCryptographyMaterialProvidersTypes.Error {
   548  	return func() AwsCryptographyMaterialProvidersTypes.Error {
   549  
   550  		return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidAlgorithmSuiteInfo_(Aws_cryptography_materialProviders_InvalidAlgorithmSuiteInfo_message_ToDafny(nativeInput.Message))
   551  	}()
   552  
   553  }
   554  
   555  func InvalidAlgorithmSuiteInfoOnDecrypt_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.InvalidAlgorithmSuiteInfoOnDecrypt) AwsCryptographyMaterialProvidersTypes.Error {
   556  	return func() AwsCryptographyMaterialProvidersTypes.Error {
   557  
   558  		return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidAlgorithmSuiteInfoOnDecrypt_(Aws_cryptography_materialProviders_InvalidAlgorithmSuiteInfoOnDecrypt_message_ToDafny(nativeInput.Message))
   559  	}()
   560  
   561  }
   562  
   563  func InvalidAlgorithmSuiteInfoOnEncrypt_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.InvalidAlgorithmSuiteInfoOnEncrypt) AwsCryptographyMaterialProvidersTypes.Error {
   564  	return func() AwsCryptographyMaterialProvidersTypes.Error {
   565  
   566  		return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidAlgorithmSuiteInfoOnEncrypt_(Aws_cryptography_materialProviders_InvalidAlgorithmSuiteInfoOnEncrypt_message_ToDafny(nativeInput.Message))
   567  	}()
   568  
   569  }
   570  
   571  func InvalidDecryptionMaterials_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.InvalidDecryptionMaterials) AwsCryptographyMaterialProvidersTypes.Error {
   572  	return func() AwsCryptographyMaterialProvidersTypes.Error {
   573  
   574  		return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidDecryptionMaterials_(Aws_cryptography_materialProviders_InvalidDecryptionMaterials_message_ToDafny(nativeInput.Message))
   575  	}()
   576  
   577  }
   578  
   579  func InvalidDecryptionMaterialsTransition_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.InvalidDecryptionMaterialsTransition) AwsCryptographyMaterialProvidersTypes.Error {
   580  	return func() AwsCryptographyMaterialProvidersTypes.Error {
   581  
   582  		return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidDecryptionMaterialsTransition_(Aws_cryptography_materialProviders_InvalidDecryptionMaterialsTransition_message_ToDafny(nativeInput.Message))
   583  	}()
   584  
   585  }
   586  
   587  func InvalidEncryptionMaterials_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.InvalidEncryptionMaterials) AwsCryptographyMaterialProvidersTypes.Error {
   588  	return func() AwsCryptographyMaterialProvidersTypes.Error {
   589  
   590  		return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidEncryptionMaterials_(Aws_cryptography_materialProviders_InvalidEncryptionMaterials_message_ToDafny(nativeInput.Message))
   591  	}()
   592  
   593  }
   594  
   595  func InvalidEncryptionMaterialsTransition_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.InvalidEncryptionMaterialsTransition) AwsCryptographyMaterialProvidersTypes.Error {
   596  	return func() AwsCryptographyMaterialProvidersTypes.Error {
   597  
   598  		return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_InvalidEncryptionMaterialsTransition_(Aws_cryptography_materialProviders_InvalidEncryptionMaterialsTransition_message_ToDafny(nativeInput.Message))
   599  	}()
   600  
   601  }
   602  
   603  func CollectionOfErrors_Input_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.CollectionOfErrors) AwsCryptographyMaterialProvidersTypes.Error {
   604  	var e []interface{}
   605  	for _, i2 := range nativeInput.ListOfErrors {
   606  		e = append(e, Error_ToDafny(i2))
   607  	}
   608  	return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_CollectionOfErrors_(dafny.SeqOf(e...), func() dafny.Sequence {
   609  		res, err := UTF8.DecodeFromNativeGoByteArray([]byte(nativeInput.Message))
   610  		if err != nil {
   611  			panic("invalid utf8 input provided")
   612  		}
   613  		return res
   614  	}())
   615  }
   616  func OpaqueError_Input_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError) AwsCryptographyMaterialProvidersTypes.Error {
   617  	return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_Opaque_(nativeInput.ErrObject)
   618  }
   619  
   620  func Error_ToDafny(err error) AwsCryptographyMaterialProvidersTypes.Error {
   621  	switch err.(type) {
   622  	// Service Errors
   623  	case awscryptographymaterialproviderssmithygeneratedtypes.AwsCryptographicMaterialProvidersException:
   624  		return AwsCryptographicMaterialProvidersException_ToDafny(err.(awscryptographymaterialproviderssmithygeneratedtypes.AwsCryptographicMaterialProvidersException))
   625  
   626  	case awscryptographymaterialproviderssmithygeneratedtypes.EntryAlreadyExists:
   627  		return EntryAlreadyExists_ToDafny(err.(awscryptographymaterialproviderssmithygeneratedtypes.EntryAlreadyExists))
   628  
   629  	case awscryptographymaterialproviderssmithygeneratedtypes.EntryDoesNotExist:
   630  		return EntryDoesNotExist_ToDafny(err.(awscryptographymaterialproviderssmithygeneratedtypes.EntryDoesNotExist))
   631  
   632  	case awscryptographymaterialproviderssmithygeneratedtypes.InFlightTTLExceeded:
   633  		return InFlightTTLExceeded_ToDafny(err.(awscryptographymaterialproviderssmithygeneratedtypes.InFlightTTLExceeded))
   634  
   635  	case awscryptographymaterialproviderssmithygeneratedtypes.InvalidAlgorithmSuiteInfo:
   636  		return InvalidAlgorithmSuiteInfo_ToDafny(err.(awscryptographymaterialproviderssmithygeneratedtypes.InvalidAlgorithmSuiteInfo))
   637  
   638  	case awscryptographymaterialproviderssmithygeneratedtypes.InvalidAlgorithmSuiteInfoOnDecrypt:
   639  		return InvalidAlgorithmSuiteInfoOnDecrypt_ToDafny(err.(awscryptographymaterialproviderssmithygeneratedtypes.InvalidAlgorithmSuiteInfoOnDecrypt))
   640  
   641  	case awscryptographymaterialproviderssmithygeneratedtypes.InvalidAlgorithmSuiteInfoOnEncrypt:
   642  		return InvalidAlgorithmSuiteInfoOnEncrypt_ToDafny(err.(awscryptographymaterialproviderssmithygeneratedtypes.InvalidAlgorithmSuiteInfoOnEncrypt))
   643  
   644  	case awscryptographymaterialproviderssmithygeneratedtypes.InvalidDecryptionMaterials:
   645  		return InvalidDecryptionMaterials_ToDafny(err.(awscryptographymaterialproviderssmithygeneratedtypes.InvalidDecryptionMaterials))
   646  
   647  	case awscryptographymaterialproviderssmithygeneratedtypes.InvalidDecryptionMaterialsTransition:
   648  		return InvalidDecryptionMaterialsTransition_ToDafny(err.(awscryptographymaterialproviderssmithygeneratedtypes.InvalidDecryptionMaterialsTransition))
   649  
   650  	case awscryptographymaterialproviderssmithygeneratedtypes.InvalidEncryptionMaterials:
   651  		return InvalidEncryptionMaterials_ToDafny(err.(awscryptographymaterialproviderssmithygeneratedtypes.InvalidEncryptionMaterials))
   652  
   653  	case awscryptographymaterialproviderssmithygeneratedtypes.InvalidEncryptionMaterialsTransition:
   654  		return InvalidEncryptionMaterialsTransition_ToDafny(err.(awscryptographymaterialproviderssmithygeneratedtypes.InvalidEncryptionMaterialsTransition))
   655  
   656  	//DependentErrors
   657  	case awscryptographyprimitivessmithygeneratedtypes.AwsCryptographicPrimitivesBaseException:
   658  		return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyPrimitives_(awscryptographyprimitivessmithygenerated.Error_ToDafny(err))
   659  
   660  	case awscryptographykeystoresmithygeneratedtypes.KeyStoreBaseException:
   661  		return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographyKeyStore_(awscryptographykeystoresmithygenerated.Error_ToDafny(err))
   662  
   663  	case *smithy.OperationError:
   664  		if err.(*smithy.OperationError).Service() == "DynamoDB" {
   665  			DynamoDBError := comamazonawsdynamodbsmithygenerated.Error_ToDafny(err)
   666  			return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(DynamoDBError)
   667  		}
   668  		if err.(*smithy.OperationError).Service() == "KMS" {
   669  			KMSError := comamazonawskmssmithygenerated.Error_ToDafny(err)
   670  			return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_ComAmazonawsKms_(KMSError)
   671  		}
   672  		return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_Opaque_(err)
   673  
   674  	case smithy.APIError:
   675  		DynamoDBError := comamazonawsdynamodbsmithygenerated.Error_ToDafny(err)
   676  		if !DynamoDBError.Is_OpaqueWithText() {
   677  			return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(DynamoDBError)
   678  		}
   679  		KMSError := comamazonawskmssmithygenerated.Error_ToDafny(err)
   680  		if !KMSError.Is_OpaqueWithText() {
   681  			return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_ComAmazonawsKms_(KMSError)
   682  		}
   683  		return AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_Opaque_(err)
   684  
   685  	//Unmodelled Errors
   686  	case awscryptographymaterialproviderssmithygeneratedtypes.CollectionOfErrors:
   687  		return CollectionOfErrors_Input_ToDafny(err.(awscryptographymaterialproviderssmithygeneratedtypes.CollectionOfErrors))
   688  
   689  	default:
   690  		error, ok := err.(awscryptographymaterialproviderssmithygeneratedtypes.OpaqueError)
   691  		if !ok {
   692  			panic("Error is not an OpaqueError")
   693  		}
   694  		return OpaqueError_Input_ToDafny(error)
   695  	}
   696  }
   697  
   698  func MaterialProvidersConfig_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.MaterialProvidersConfig) AwsCryptographyMaterialProvidersTypes.MaterialProvidersConfig {
   699  	return func() AwsCryptographyMaterialProvidersTypes.MaterialProvidersConfig {
   700  
   701  		return AwsCryptographyMaterialProvidersTypes.Companion_MaterialProvidersConfig_.Create_MaterialProvidersConfig_()
   702  	}()
   703  
   704  }
   705  
   706  func Materials_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.Materials) AwsCryptographyMaterialProvidersTypes.Materials {
   707  	return func() AwsCryptographyMaterialProvidersTypes.Materials {
   708  
   709  		switch nativeInput.(type) {
   710  		case *awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberEncryption:
   711  			var inputToConversion = Aws_cryptography_materialProviders_Materials_Encryption_ToDafny(nativeInput.(*awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberEncryption).Value)
   712  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_Materials_{}.Create_Encryption_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials))
   713  		case *awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberDecryption:
   714  			var inputToConversion = Aws_cryptography_materialProviders_Materials_Decryption_ToDafny(nativeInput.(*awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberDecryption).Value)
   715  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_Materials_{}.Create_Decryption_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials))
   716  		case *awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBranchKey:
   717  			var inputToConversion = Aws_cryptography_materialProviders_Materials_BranchKey_ToDafny(nativeInput.(*awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBranchKey).Value)
   718  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_Materials_{}.Create_BranchKey_(inputToConversion.UnwrapOr(nil).(AwsCryptographyKeyStoreTypes.BranchKeyMaterials))
   719  		case *awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBeaconKey:
   720  			var inputToConversion = Aws_cryptography_materialProviders_Materials_BeaconKey_ToDafny(nativeInput.(*awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBeaconKey).Value)
   721  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_Materials_{}.Create_BeaconKey_(inputToConversion.UnwrapOr(nil).(AwsCryptographyKeyStoreTypes.BeaconKeyMaterials))
   722  
   723  		default:
   724  			panic("Unhandled union type")
   725  		}
   726  	}()
   727  
   728  }
   729  
   730  func StaticConfigurations_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.StaticConfigurations) AwsCryptographyMaterialProvidersTypes.StaticConfigurations {
   731  	return func() AwsCryptographyMaterialProvidersTypes.StaticConfigurations {
   732  
   733  		switch nativeInput.(type) {
   734  		case *awscryptographymaterialproviderssmithygeneratedtypes.StaticConfigurationsMemberAWS_KMS_ECDH:
   735  			var inputToConversion = Aws_cryptography_materialProviders_StaticConfigurations_AWS_KMS_ECDH_ToDafny(nativeInput.(*awscryptographymaterialproviderssmithygeneratedtypes.StaticConfigurationsMemberAWS_KMS_ECDH).Value)
   736  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_StaticConfigurations_{}.Create_AWS__KMS__ECDH_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations))
   737  		case *awscryptographymaterialproviderssmithygeneratedtypes.StaticConfigurationsMemberRAW_ECDH:
   738  			var inputToConversion = Aws_cryptography_materialProviders_StaticConfigurations_RAW_ECDH_ToDafny(nativeInput.(*awscryptographymaterialproviderssmithygeneratedtypes.StaticConfigurationsMemberRAW_ECDH).Value)
   739  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_StaticConfigurations_{}.Create_RAW__ECDH_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations))
   740  
   741  		default:
   742  			panic("Unhandled union type")
   743  		}
   744  	}()
   745  
   746  }
   747  
   748  func KeyAgreementScheme_ToDafny(nativeInput awscryptographymaterialproviderssmithygeneratedtypes.KeyAgreementScheme) AwsCryptographyMaterialProvidersTypes.KeyAgreementScheme {
   749  	return func() AwsCryptographyMaterialProvidersTypes.KeyAgreementScheme {
   750  
   751  		switch nativeInput.(type) {
   752  		case *awscryptographymaterialproviderssmithygeneratedtypes.KeyAgreementSchemeMemberStaticConfiguration:
   753  			var inputToConversion = Aws_cryptography_materialProviders_KeyAgreementScheme_StaticConfiguration_ToDafny(nativeInput.(*awscryptographymaterialproviderssmithygeneratedtypes.KeyAgreementSchemeMemberStaticConfiguration).Value)
   754  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_KeyAgreementScheme_{}.Create_StaticConfiguration_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.StaticConfigurations))
   755  
   756  		default:
   757  			panic("Unhandled union type")
   758  		}
   759  	}()
   760  
   761  }
   762  
   763  func Aws_cryptography_materialProviders_CreateAwsKmsDiscoveryKeyringInput_kmsClient_ToDafny(input *kms.Client) ComAmazonawsKmsTypes.IKMSClient {
   764  	return &KMSwrapped.Shim{Client: input}
   765  }
   766  
   767  func Aws_cryptography_materialProviders_CreateAwsKmsDiscoveryKeyringInput_discoveryFilter_ToDafny(input *awscryptographymaterialproviderssmithygeneratedtypes.DiscoveryFilter) Wrappers.Option {
   768  	return func() Wrappers.Option {
   769  		if input == nil {
   770  			return Wrappers.Companion_Option_.Create_None_()
   771  		}
   772  		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)))
   773  	}()
   774  }
   775  
   776  func Aws_cryptography_materialProviders_DiscoveryFilter_accountIds_ToDafny(input []string) dafny.Sequence {
   777  	return func() dafny.Sequence {
   778  
   779  		var fieldValue []interface{} = make([]interface{}, 0)
   780  		for _, val := range input {
   781  			element := Aws_cryptography_materialProviders_AccountIdList_member_ToDafny(val)
   782  			fieldValue = append(fieldValue, element)
   783  		}
   784  		return dafny.SeqOf(fieldValue...)
   785  	}()
   786  }
   787  
   788  func Aws_cryptography_materialProviders_AccountIdList_member_ToDafny(input string) dafny.Sequence {
   789  	return func() dafny.Sequence {
   790  
   791  		return func() dafny.Sequence {
   792  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
   793  			if err != nil {
   794  				panic("invalid utf8 input provided")
   795  			}
   796  			return res
   797  		}()
   798  	}()
   799  }
   800  
   801  func Aws_cryptography_materialProviders_DiscoveryFilter_partition_ToDafny(input string) dafny.Sequence {
   802  	return func() dafny.Sequence {
   803  
   804  		return func() dafny.Sequence {
   805  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
   806  			if err != nil {
   807  				panic("invalid utf8 input provided")
   808  			}
   809  			return res
   810  		}()
   811  	}()
   812  }
   813  
   814  func Aws_cryptography_materialProviders_CreateAwsKmsDiscoveryKeyringInput_grantTokens_ToDafny(input []string) Wrappers.Option {
   815  	return func() Wrappers.Option {
   816  		if input == nil {
   817  			return Wrappers.Companion_Option_.Create_None_()
   818  		}
   819  		var fieldValue []interface{} = make([]interface{}, 0)
   820  		for _, val := range input {
   821  			element := Aws_cryptography_materialProviders_GrantTokenList_member_ToDafny(val)
   822  			fieldValue = append(fieldValue, element)
   823  		}
   824  		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
   825  	}()
   826  }
   827  
   828  func Aws_cryptography_materialProviders_GrantTokenList_member_ToDafny(input string) dafny.Sequence {
   829  	return func() dafny.Sequence {
   830  
   831  		return func() dafny.Sequence {
   832  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
   833  			if err != nil {
   834  				panic("invalid utf8 input provided")
   835  			}
   836  			return res
   837  		}()
   838  	}()
   839  }
   840  
   841  func Aws_cryptography_materialProviders_CreateAwsKmsDiscoveryMultiKeyringInput_regions_ToDafny(input []string) dafny.Sequence {
   842  	return func() dafny.Sequence {
   843  
   844  		var fieldValue []interface{} = make([]interface{}, 0)
   845  		for _, val := range input {
   846  			element := Aws_cryptography_materialProviders_RegionList_member_ToDafny(val)
   847  			fieldValue = append(fieldValue, element)
   848  		}
   849  		return dafny.SeqOf(fieldValue...)
   850  	}()
   851  }
   852  
   853  func Aws_cryptography_materialProviders_RegionList_member_ToDafny(input string) dafny.Sequence {
   854  	return func() dafny.Sequence {
   855  
   856  		return func() dafny.Sequence {
   857  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
   858  			if err != nil {
   859  				panic("invalid utf8 input provided")
   860  			}
   861  			return res
   862  		}()
   863  	}()
   864  }
   865  
   866  func Aws_cryptography_materialProviders_CreateAwsKmsDiscoveryMultiKeyringInput_discoveryFilter_ToDafny(input *awscryptographymaterialproviderssmithygeneratedtypes.DiscoveryFilter) Wrappers.Option {
   867  	return func() Wrappers.Option {
   868  		if input == nil {
   869  			return Wrappers.Companion_Option_.Create_None_()
   870  		}
   871  		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)))
   872  	}()
   873  }
   874  
   875  func Aws_cryptography_materialProviders_CreateAwsKmsDiscoveryMultiKeyringInput_grantTokens_ToDafny(input []string) Wrappers.Option {
   876  	return func() Wrappers.Option {
   877  		if input == nil {
   878  			return Wrappers.Companion_Option_.Create_None_()
   879  		}
   880  		var fieldValue []interface{} = make([]interface{}, 0)
   881  		for _, val := range input {
   882  			element := Aws_cryptography_materialProviders_GrantTokenList_member_ToDafny(val)
   883  			fieldValue = append(fieldValue, element)
   884  		}
   885  		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
   886  	}()
   887  }
   888  
   889  func Aws_cryptography_materialProviders_CreateAwsKmsEcdhKeyringInput_KeyAgreementScheme_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.KmsEcdhStaticConfigurations) AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations {
   890  	return func() AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations {
   891  
   892  		switch input.(type) {
   893  		case *awscryptographymaterialproviderssmithygeneratedtypes.KmsEcdhStaticConfigurationsMemberKmsPublicKeyDiscovery:
   894  			var inputToConversion = Aws_cryptography_materialProviders_KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.KmsEcdhStaticConfigurationsMemberKmsPublicKeyDiscovery).Value)
   895  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_KmsEcdhStaticConfigurations_{}.Create_KmsPublicKeyDiscovery_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.KmsPublicKeyDiscoveryInput))
   896  		case *awscryptographymaterialproviderssmithygeneratedtypes.KmsEcdhStaticConfigurationsMemberKmsPrivateKeyToStaticPublicKey:
   897  			var inputToConversion = Aws_cryptography_materialProviders_KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.KmsEcdhStaticConfigurationsMemberKmsPrivateKeyToStaticPublicKey).Value)
   898  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_KmsEcdhStaticConfigurations_{}.Create_KmsPrivateKeyToStaticPublicKey_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.KmsPrivateKeyToStaticPublicKeyInput))
   899  
   900  		default:
   901  			panic("Unhandled union type")
   902  		}
   903  	}()
   904  }
   905  
   906  func Aws_cryptography_materialProviders_KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.KmsPublicKeyDiscoveryInput) Wrappers.Option {
   907  	return func() Wrappers.Option {
   908  
   909  		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_KmsPublicKeyDiscoveryInput_.Create_KmsPublicKeyDiscoveryInput_(Aws_cryptography_materialProviders_KmsPublicKeyDiscoveryInput_recipientKmsIdentifier_ToDafny(input.RecipientKmsIdentifier)))
   910  	}()
   911  }
   912  
   913  func Aws_cryptography_materialProviders_KmsPublicKeyDiscoveryInput_recipientKmsIdentifier_ToDafny(input string) dafny.Sequence {
   914  	return func() dafny.Sequence {
   915  
   916  		return func() dafny.Sequence {
   917  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
   918  			if err != nil {
   919  				panic("invalid utf8 input provided")
   920  			}
   921  			return res
   922  		}()
   923  	}()
   924  }
   925  
   926  func Aws_cryptography_materialProviders_KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.KmsPrivateKeyToStaticPublicKeyInput) Wrappers.Option {
   927  	return func() Wrappers.Option {
   928  
   929  		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)))
   930  	}()
   931  }
   932  
   933  func Aws_cryptography_materialProviders_KmsPrivateKeyToStaticPublicKeyInput_senderKmsIdentifier_ToDafny(input string) dafny.Sequence {
   934  	return func() dafny.Sequence {
   935  
   936  		return func() dafny.Sequence {
   937  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
   938  			if err != nil {
   939  				panic("invalid utf8 input provided")
   940  			}
   941  			return res
   942  		}()
   943  	}()
   944  }
   945  
   946  func Aws_cryptography_materialProviders_KmsPrivateKeyToStaticPublicKeyInput_senderPublicKey_ToDafny(input []byte) Wrappers.Option {
   947  	return func() Wrappers.Option {
   948  		var v []interface{}
   949  		if input == nil {
   950  			return Wrappers.Companion_Option_.Create_None_()
   951  		}
   952  		for _, e := range input {
   953  			v = append(v, e)
   954  		}
   955  		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...))
   956  	}()
   957  }
   958  
   959  func Aws_cryptography_materialProviders_KmsPrivateKeyToStaticPublicKeyInput_recipientPublicKey_ToDafny(input []byte) dafny.Sequence {
   960  	return func() dafny.Sequence {
   961  		var v []interface{}
   962  		if input == nil {
   963  			return nil
   964  		}
   965  		for _, e := range input {
   966  			v = append(v, e)
   967  		}
   968  		return dafny.SeqOf(v...)
   969  	}()
   970  }
   971  
   972  func Aws_cryptography_materialProviders_CreateAwsKmsEcdhKeyringInput_curveSpec_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec) AwsCryptographyPrimitivesTypes.ECDHCurveSpec {
   973  	return func() AwsCryptographyPrimitivesTypes.ECDHCurveSpec {
   974  
   975  		var index int
   976  		for _, enumVal := range input.Values() {
   977  			index++
   978  			if enumVal == input {
   979  				break
   980  			}
   981  		}
   982  		var enum interface{}
   983  		for allEnums, i := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDHCurveSpec_{}.AllSingletonConstructors()), 0; i < index; i++ {
   984  			var ok bool
   985  			enum, ok = allEnums()
   986  			if !ok {
   987  				break
   988  			}
   989  		}
   990  		return enum.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec)
   991  	}()
   992  }
   993  
   994  func Aws_cryptography_materialProviders_CreateAwsKmsEcdhKeyringInput_kmsClient_ToDafny(input *kms.Client) ComAmazonawsKmsTypes.IKMSClient {
   995  	return &KMSwrapped.Shim{Client: input}
   996  }
   997  
   998  func Aws_cryptography_materialProviders_CreateAwsKmsEcdhKeyringInput_grantTokens_ToDafny(input []string) Wrappers.Option {
   999  	return func() Wrappers.Option {
  1000  		if input == nil {
  1001  			return Wrappers.Companion_Option_.Create_None_()
  1002  		}
  1003  		var fieldValue []interface{} = make([]interface{}, 0)
  1004  		for _, val := range input {
  1005  			element := Aws_cryptography_materialProviders_GrantTokenList_member_ToDafny(val)
  1006  			fieldValue = append(fieldValue, element)
  1007  		}
  1008  		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
  1009  	}()
  1010  }
  1011  
  1012  func Aws_cryptography_materialProviders_CreateAwsKmsHierarchicalKeyringInput_branchKeyId_ToDafny(input *string) Wrappers.Option {
  1013  	return func() Wrappers.Option {
  1014  		if input == nil {
  1015  			return Wrappers.Companion_Option_.Create_None_()
  1016  		}
  1017  		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
  1018  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input))
  1019  			if err != nil {
  1020  				panic("invalid utf8 input provided")
  1021  			}
  1022  			return res
  1023  		}())
  1024  	}()
  1025  }
  1026  
  1027  func Aws_cryptography_materialProviders_CreateAwsKmsHierarchicalKeyringInput_keyStore_ToDafny(input *awscryptographykeystoresmithygenerated.Client) AwsCryptographyKeyStoreTypes.IKeyStoreClient {
  1028  	return input.DafnyClient
  1029  }
  1030  
  1031  func Aws_cryptography_materialProviders_CreateAwsKmsHierarchicalKeyringInput_ttlSeconds_ToDafny(input int64) int64 {
  1032  	return func() int64 {
  1033  
  1034  		return input
  1035  	}()
  1036  }
  1037  
  1038  func Aws_cryptography_materialProviders_CreateAwsKmsHierarchicalKeyringInput_cache_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.CacheType) Wrappers.Option {
  1039  	return func() Wrappers.Option {
  1040  		if input == nil {
  1041  			return Wrappers.Companion_Option_.Create_None_()
  1042  		}
  1043  		switch input.(type) {
  1044  		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberDefault:
  1045  			var inputToConversion = Aws_cryptography_materialProviders_CacheType_Default_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberDefault).Value)
  1046  			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_Default_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DefaultCache)))
  1047  		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberNo:
  1048  			var inputToConversion = Aws_cryptography_materialProviders_CacheType_No_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberNo).Value)
  1049  			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_No_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.NoCache)))
  1050  		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberSingleThreaded:
  1051  			var inputToConversion = Aws_cryptography_materialProviders_CacheType_SingleThreaded_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberSingleThreaded).Value)
  1052  			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_SingleThreaded_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.SingleThreadedCache)))
  1053  		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberMultiThreaded:
  1054  			var inputToConversion = Aws_cryptography_materialProviders_CacheType_MultiThreaded_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberMultiThreaded).Value)
  1055  			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_MultiThreaded_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.MultiThreadedCache)))
  1056  		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberStormTracking:
  1057  			var inputToConversion = Aws_cryptography_materialProviders_CacheType_StormTracking_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberStormTracking).Value)
  1058  			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_StormTracking_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.StormTrackingCache)))
  1059  		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared:
  1060  			var inputToConversion = func() Wrappers.Option {
  1061  				if (input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared).Value) == nil {
  1062  					return Wrappers.Companion_Option_.Create_None_()
  1063  				}
  1064  				return Wrappers.Companion_Option_.Create_Some_(CryptographicMaterialsCache_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared).Value))
  1065  			}()
  1066  			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_Shared_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache)))
  1067  
  1068  		default:
  1069  			panic("Unhandled union type")
  1070  		}
  1071  	}()
  1072  }
  1073  
  1074  func Aws_cryptography_materialProviders_CacheType_Default_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DefaultCache) Wrappers.Option {
  1075  	return func() Wrappers.Option {
  1076  
  1077  		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_DefaultCache_.Create_DefaultCache_(Aws_cryptography_materialProviders_DefaultCache_entryCapacity_ToDafny(input.EntryCapacity)))
  1078  	}()
  1079  }
  1080  
  1081  func Aws_cryptography_materialProviders_DefaultCache_entryCapacity_ToDafny(input int32) int32 {
  1082  	return func() int32 {
  1083  
  1084  		return input
  1085  	}()
  1086  }
  1087  
  1088  func Aws_cryptography_materialProviders_CacheType_No_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.NoCache) Wrappers.Option {
  1089  	return func() Wrappers.Option {
  1090  
  1091  		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_NoCache_.Create_NoCache_())
  1092  	}()
  1093  }
  1094  
  1095  func Aws_cryptography_materialProviders_CacheType_SingleThreaded_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.SingleThreadedCache) Wrappers.Option {
  1096  	return func() Wrappers.Option {
  1097  
  1098  		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)))
  1099  	}()
  1100  }
  1101  
  1102  func Aws_cryptography_materialProviders_SingleThreadedCache_entryCapacity_ToDafny(input int32) int32 {
  1103  	return func() int32 {
  1104  
  1105  		return input
  1106  	}()
  1107  }
  1108  
  1109  func Aws_cryptography_materialProviders_SingleThreadedCache_entryPruningTailSize_ToDafny(input *int32) Wrappers.Option {
  1110  	return func() Wrappers.Option {
  1111  		if input == nil {
  1112  			return Wrappers.Companion_Option_.Create_None_()
  1113  		}
  1114  		return Wrappers.Companion_Option_.Create_Some_(*input)
  1115  	}()
  1116  }
  1117  
  1118  func Aws_cryptography_materialProviders_CacheType_MultiThreaded_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.MultiThreadedCache) Wrappers.Option {
  1119  	return func() Wrappers.Option {
  1120  
  1121  		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)))
  1122  	}()
  1123  }
  1124  
  1125  func Aws_cryptography_materialProviders_MultiThreadedCache_entryCapacity_ToDafny(input int32) int32 {
  1126  	return func() int32 {
  1127  
  1128  		return input
  1129  	}()
  1130  }
  1131  
  1132  func Aws_cryptography_materialProviders_MultiThreadedCache_entryPruningTailSize_ToDafny(input *int32) Wrappers.Option {
  1133  	return func() Wrappers.Option {
  1134  		if input == nil {
  1135  			return Wrappers.Companion_Option_.Create_None_()
  1136  		}
  1137  		return Wrappers.Companion_Option_.Create_Some_(*input)
  1138  	}()
  1139  }
  1140  
  1141  func Aws_cryptography_materialProviders_CacheType_StormTracking_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.StormTrackingCache) Wrappers.Option {
  1142  	return func() Wrappers.Option {
  1143  
  1144  		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)))
  1145  	}()
  1146  }
  1147  
  1148  func Aws_cryptography_materialProviders_StormTrackingCache_entryCapacity_ToDafny(input int32) int32 {
  1149  	return func() int32 {
  1150  
  1151  		return input
  1152  	}()
  1153  }
  1154  
  1155  func Aws_cryptography_materialProviders_StormTrackingCache_entryPruningTailSize_ToDafny(input *int32) Wrappers.Option {
  1156  	return func() Wrappers.Option {
  1157  		if input == nil {
  1158  			return Wrappers.Companion_Option_.Create_None_()
  1159  		}
  1160  		return Wrappers.Companion_Option_.Create_Some_(*input)
  1161  	}()
  1162  }
  1163  
  1164  func Aws_cryptography_materialProviders_StormTrackingCache_gracePeriod_ToDafny(input int32) int32 {
  1165  	return func() int32 {
  1166  
  1167  		return input
  1168  	}()
  1169  }
  1170  
  1171  func Aws_cryptography_materialProviders_StormTrackingCache_graceInterval_ToDafny(input int32) int32 {
  1172  	return func() int32 {
  1173  
  1174  		return input
  1175  	}()
  1176  }
  1177  
  1178  func Aws_cryptography_materialProviders_StormTrackingCache_fanOut_ToDafny(input int32) int32 {
  1179  	return func() int32 {
  1180  
  1181  		return input
  1182  	}()
  1183  }
  1184  
  1185  func Aws_cryptography_materialProviders_StormTrackingCache_inFlightTTL_ToDafny(input int32) int32 {
  1186  	return func() int32 {
  1187  
  1188  		return input
  1189  	}()
  1190  }
  1191  
  1192  func Aws_cryptography_materialProviders_StormTrackingCache_sleepMilli_ToDafny(input int32) int32 {
  1193  	return func() int32 {
  1194  
  1195  		return input
  1196  	}()
  1197  }
  1198  
  1199  func Aws_cryptography_materialProviders_StormTrackingCache_timeUnits_ToDafny(input *awscryptographymaterialproviderssmithygeneratedtypes.TimeUnits) Wrappers.Option {
  1200  	return func() Wrappers.Option {
  1201  		if input == nil {
  1202  			return Wrappers.Companion_Option_.Create_None_()
  1203  		}
  1204  		var index int
  1205  		for _, enumVal := range input.Values() {
  1206  			index++
  1207  			if enumVal == *input {
  1208  				break
  1209  			}
  1210  		}
  1211  		var enum interface{}
  1212  		for allEnums, i := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_TimeUnits_{}.AllSingletonConstructors()), 0; i < index; i++ {
  1213  			var ok bool
  1214  			enum, ok = allEnums()
  1215  			if !ok {
  1216  				break
  1217  			}
  1218  		}
  1219  		return Wrappers.Companion_Option_.Create_Some_(enum.(AwsCryptographyMaterialProvidersTypes.TimeUnits))
  1220  	}()
  1221  }
  1222  
  1223  func Aws_cryptography_materialProviders_CreateAwsKmsHierarchicalKeyringInput_partitionId_ToDafny(input *string) Wrappers.Option {
  1224  	return func() Wrappers.Option {
  1225  		if input == nil {
  1226  			return Wrappers.Companion_Option_.Create_None_()
  1227  		}
  1228  		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
  1229  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input))
  1230  			if err != nil {
  1231  				panic("invalid utf8 input provided")
  1232  			}
  1233  			return res
  1234  		}())
  1235  	}()
  1236  }
  1237  
  1238  func Aws_cryptography_materialProviders_CreateAwsKmsKeyringInput_kmsKeyId_ToDafny(input string) dafny.Sequence {
  1239  	return func() dafny.Sequence {
  1240  
  1241  		return func() dafny.Sequence {
  1242  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
  1243  			if err != nil {
  1244  				panic("invalid utf8 input provided")
  1245  			}
  1246  			return res
  1247  		}()
  1248  	}()
  1249  }
  1250  
  1251  func Aws_cryptography_materialProviders_CreateAwsKmsKeyringInput_kmsClient_ToDafny(input *kms.Client) ComAmazonawsKmsTypes.IKMSClient {
  1252  	return &KMSwrapped.Shim{Client: input}
  1253  }
  1254  
  1255  func Aws_cryptography_materialProviders_CreateAwsKmsKeyringInput_grantTokens_ToDafny(input []string) Wrappers.Option {
  1256  	return func() Wrappers.Option {
  1257  		if input == nil {
  1258  			return Wrappers.Companion_Option_.Create_None_()
  1259  		}
  1260  		var fieldValue []interface{} = make([]interface{}, 0)
  1261  		for _, val := range input {
  1262  			element := Aws_cryptography_materialProviders_GrantTokenList_member_ToDafny(val)
  1263  			fieldValue = append(fieldValue, element)
  1264  		}
  1265  		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
  1266  	}()
  1267  }
  1268  
  1269  func Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryKeyringInput_kmsClient_ToDafny(input *kms.Client) ComAmazonawsKmsTypes.IKMSClient {
  1270  	return &KMSwrapped.Shim{Client: input}
  1271  }
  1272  
  1273  func Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryKeyringInput_discoveryFilter_ToDafny(input *awscryptographymaterialproviderssmithygeneratedtypes.DiscoveryFilter) Wrappers.Option {
  1274  	return func() Wrappers.Option {
  1275  		if input == nil {
  1276  			return Wrappers.Companion_Option_.Create_None_()
  1277  		}
  1278  		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)))
  1279  	}()
  1280  }
  1281  
  1282  func Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryKeyringInput_grantTokens_ToDafny(input []string) Wrappers.Option {
  1283  	return func() Wrappers.Option {
  1284  		if input == nil {
  1285  			return Wrappers.Companion_Option_.Create_None_()
  1286  		}
  1287  		var fieldValue []interface{} = make([]interface{}, 0)
  1288  		for _, val := range input {
  1289  			element := Aws_cryptography_materialProviders_GrantTokenList_member_ToDafny(val)
  1290  			fieldValue = append(fieldValue, element)
  1291  		}
  1292  		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
  1293  	}()
  1294  }
  1295  
  1296  func Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryKeyringInput_region_ToDafny(input string) dafny.Sequence {
  1297  	return func() dafny.Sequence {
  1298  
  1299  		return func() dafny.Sequence {
  1300  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
  1301  			if err != nil {
  1302  				panic("invalid utf8 input provided")
  1303  			}
  1304  			return res
  1305  		}()
  1306  	}()
  1307  }
  1308  
  1309  func Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryMultiKeyringInput_regions_ToDafny(input []string) dafny.Sequence {
  1310  	return func() dafny.Sequence {
  1311  
  1312  		var fieldValue []interface{} = make([]interface{}, 0)
  1313  		for _, val := range input {
  1314  			element := Aws_cryptography_materialProviders_RegionList_member_ToDafny(val)
  1315  			fieldValue = append(fieldValue, element)
  1316  		}
  1317  		return dafny.SeqOf(fieldValue...)
  1318  	}()
  1319  }
  1320  
  1321  func Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryMultiKeyringInput_discoveryFilter_ToDafny(input *awscryptographymaterialproviderssmithygeneratedtypes.DiscoveryFilter) Wrappers.Option {
  1322  	return func() Wrappers.Option {
  1323  		if input == nil {
  1324  			return Wrappers.Companion_Option_.Create_None_()
  1325  		}
  1326  		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)))
  1327  	}()
  1328  }
  1329  
  1330  func Aws_cryptography_materialProviders_CreateAwsKmsMrkDiscoveryMultiKeyringInput_grantTokens_ToDafny(input []string) Wrappers.Option {
  1331  	return func() Wrappers.Option {
  1332  		if input == nil {
  1333  			return Wrappers.Companion_Option_.Create_None_()
  1334  		}
  1335  		var fieldValue []interface{} = make([]interface{}, 0)
  1336  		for _, val := range input {
  1337  			element := Aws_cryptography_materialProviders_GrantTokenList_member_ToDafny(val)
  1338  			fieldValue = append(fieldValue, element)
  1339  		}
  1340  		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
  1341  	}()
  1342  }
  1343  
  1344  func Aws_cryptography_materialProviders_CreateAwsKmsMrkKeyringInput_kmsKeyId_ToDafny(input string) dafny.Sequence {
  1345  	return func() dafny.Sequence {
  1346  
  1347  		return func() dafny.Sequence {
  1348  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
  1349  			if err != nil {
  1350  				panic("invalid utf8 input provided")
  1351  			}
  1352  			return res
  1353  		}()
  1354  	}()
  1355  }
  1356  
  1357  func Aws_cryptography_materialProviders_CreateAwsKmsMrkKeyringInput_kmsClient_ToDafny(input *kms.Client) ComAmazonawsKmsTypes.IKMSClient {
  1358  	return &KMSwrapped.Shim{Client: input}
  1359  }
  1360  
  1361  func Aws_cryptography_materialProviders_CreateAwsKmsMrkKeyringInput_grantTokens_ToDafny(input []string) Wrappers.Option {
  1362  	return func() Wrappers.Option {
  1363  		if input == nil {
  1364  			return Wrappers.Companion_Option_.Create_None_()
  1365  		}
  1366  		var fieldValue []interface{} = make([]interface{}, 0)
  1367  		for _, val := range input {
  1368  			element := Aws_cryptography_materialProviders_GrantTokenList_member_ToDafny(val)
  1369  			fieldValue = append(fieldValue, element)
  1370  		}
  1371  		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
  1372  	}()
  1373  }
  1374  
  1375  func Aws_cryptography_materialProviders_CreateAwsKmsMrkMultiKeyringInput_generator_ToDafny(input *string) Wrappers.Option {
  1376  	return func() Wrappers.Option {
  1377  		if input == nil {
  1378  			return Wrappers.Companion_Option_.Create_None_()
  1379  		}
  1380  		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
  1381  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input))
  1382  			if err != nil {
  1383  				panic("invalid utf8 input provided")
  1384  			}
  1385  			return res
  1386  		}())
  1387  	}()
  1388  }
  1389  
  1390  func Aws_cryptography_materialProviders_CreateAwsKmsMrkMultiKeyringInput_kmsKeyIds_ToDafny(input []string) Wrappers.Option {
  1391  	return func() Wrappers.Option {
  1392  		if input == nil {
  1393  			return Wrappers.Companion_Option_.Create_None_()
  1394  		}
  1395  		var fieldValue []interface{} = make([]interface{}, 0)
  1396  		for _, val := range input {
  1397  			element := Aws_cryptography_materialProviders_KmsKeyIdList_member_ToDafny(val)
  1398  			fieldValue = append(fieldValue, element)
  1399  		}
  1400  		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
  1401  	}()
  1402  }
  1403  
  1404  func Aws_cryptography_materialProviders_KmsKeyIdList_member_ToDafny(input string) dafny.Sequence {
  1405  	return func() dafny.Sequence {
  1406  
  1407  		return func() dafny.Sequence {
  1408  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
  1409  			if err != nil {
  1410  				panic("invalid utf8 input provided")
  1411  			}
  1412  			return res
  1413  		}()
  1414  	}()
  1415  }
  1416  
  1417  func Aws_cryptography_materialProviders_CreateAwsKmsMrkMultiKeyringInput_grantTokens_ToDafny(input []string) Wrappers.Option {
  1418  	return func() Wrappers.Option {
  1419  		if input == nil {
  1420  			return Wrappers.Companion_Option_.Create_None_()
  1421  		}
  1422  		var fieldValue []interface{} = make([]interface{}, 0)
  1423  		for _, val := range input {
  1424  			element := Aws_cryptography_materialProviders_GrantTokenList_member_ToDafny(val)
  1425  			fieldValue = append(fieldValue, element)
  1426  		}
  1427  		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
  1428  	}()
  1429  }
  1430  
  1431  func Aws_cryptography_materialProviders_CreateAwsKmsMultiKeyringInput_generator_ToDafny(input *string) Wrappers.Option {
  1432  	return func() Wrappers.Option {
  1433  		if input == nil {
  1434  			return Wrappers.Companion_Option_.Create_None_()
  1435  		}
  1436  		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
  1437  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input))
  1438  			if err != nil {
  1439  				panic("invalid utf8 input provided")
  1440  			}
  1441  			return res
  1442  		}())
  1443  	}()
  1444  }
  1445  
  1446  func Aws_cryptography_materialProviders_CreateAwsKmsMultiKeyringInput_kmsKeyIds_ToDafny(input []string) Wrappers.Option {
  1447  	return func() Wrappers.Option {
  1448  		if input == nil {
  1449  			return Wrappers.Companion_Option_.Create_None_()
  1450  		}
  1451  		var fieldValue []interface{} = make([]interface{}, 0)
  1452  		for _, val := range input {
  1453  			element := Aws_cryptography_materialProviders_KmsKeyIdList_member_ToDafny(val)
  1454  			fieldValue = append(fieldValue, element)
  1455  		}
  1456  		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
  1457  	}()
  1458  }
  1459  
  1460  func Aws_cryptography_materialProviders_CreateAwsKmsMultiKeyringInput_grantTokens_ToDafny(input []string) Wrappers.Option {
  1461  	return func() Wrappers.Option {
  1462  		if input == nil {
  1463  			return Wrappers.Companion_Option_.Create_None_()
  1464  		}
  1465  		var fieldValue []interface{} = make([]interface{}, 0)
  1466  		for _, val := range input {
  1467  			element := Aws_cryptography_materialProviders_GrantTokenList_member_ToDafny(val)
  1468  			fieldValue = append(fieldValue, element)
  1469  		}
  1470  		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
  1471  	}()
  1472  }
  1473  
  1474  func Aws_cryptography_materialProviders_CreateAwsKmsRsaKeyringInput_publicKey_ToDafny(input []byte) Wrappers.Option {
  1475  	return func() Wrappers.Option {
  1476  		var v []interface{}
  1477  		if input == nil {
  1478  			return Wrappers.Companion_Option_.Create_None_()
  1479  		}
  1480  		for _, e := range input {
  1481  			v = append(v, e)
  1482  		}
  1483  		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...))
  1484  	}()
  1485  }
  1486  
  1487  func Aws_cryptography_materialProviders_CreateAwsKmsRsaKeyringInput_kmsKeyId_ToDafny(input string) dafny.Sequence {
  1488  	return func() dafny.Sequence {
  1489  
  1490  		return func() dafny.Sequence {
  1491  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
  1492  			if err != nil {
  1493  				panic("invalid utf8 input provided")
  1494  			}
  1495  			return res
  1496  		}()
  1497  	}()
  1498  }
  1499  
  1500  func Aws_cryptography_materialProviders_CreateAwsKmsRsaKeyringInput_encryptionAlgorithm_ToDafny(input kmstypes.EncryptionAlgorithmSpec) ComAmazonawsKmsTypes.EncryptionAlgorithmSpec {
  1501  	return func() ComAmazonawsKmsTypes.EncryptionAlgorithmSpec {
  1502  
  1503  		var index int
  1504  		for _, enumVal := range input.Values() {
  1505  			index++
  1506  			if enumVal == input {
  1507  				break
  1508  			}
  1509  		}
  1510  		var enum interface{}
  1511  		for allEnums, i := dafny.Iterate(ComAmazonawsKmsTypes.CompanionStruct_EncryptionAlgorithmSpec_{}.AllSingletonConstructors()), 0; i < index; i++ {
  1512  			var ok bool
  1513  			enum, ok = allEnums()
  1514  			if !ok {
  1515  				break
  1516  			}
  1517  		}
  1518  		return enum.(ComAmazonawsKmsTypes.EncryptionAlgorithmSpec)
  1519  	}()
  1520  }
  1521  
  1522  func Aws_cryptography_materialProviders_CreateAwsKmsRsaKeyringInput_kmsClient_ToDafny(input *kms.Client) Wrappers.Option {
  1523  	return func() Wrappers.Option {
  1524  		if (input) == nil {
  1525  			return Wrappers.Companion_Option_.Create_None_()
  1526  		}
  1527  		return Wrappers.Companion_Option_.Create_Some_(&KMSwrapped.Shim{Client: input})
  1528  	}()
  1529  }
  1530  
  1531  func Aws_cryptography_materialProviders_CreateAwsKmsRsaKeyringInput_grantTokens_ToDafny(input []string) Wrappers.Option {
  1532  	return func() Wrappers.Option {
  1533  		if input == nil {
  1534  			return Wrappers.Companion_Option_.Create_None_()
  1535  		}
  1536  		var fieldValue []interface{} = make([]interface{}, 0)
  1537  		for _, val := range input {
  1538  			element := Aws_cryptography_materialProviders_GrantTokenList_member_ToDafny(val)
  1539  			fieldValue = append(fieldValue, element)
  1540  		}
  1541  		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
  1542  	}()
  1543  }
  1544  
  1545  func Aws_cryptography_materialProviders_CreateCryptographicMaterialsCacheInput_cache_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.CacheType) AwsCryptographyMaterialProvidersTypes.CacheType {
  1546  	return func() AwsCryptographyMaterialProvidersTypes.CacheType {
  1547  
  1548  		switch input.(type) {
  1549  		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberDefault:
  1550  			var inputToConversion = Aws_cryptography_materialProviders_CacheType_Default_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberDefault).Value)
  1551  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_Default_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DefaultCache))
  1552  		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberNo:
  1553  			var inputToConversion = Aws_cryptography_materialProviders_CacheType_No_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberNo).Value)
  1554  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_No_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.NoCache))
  1555  		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberSingleThreaded:
  1556  			var inputToConversion = Aws_cryptography_materialProviders_CacheType_SingleThreaded_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberSingleThreaded).Value)
  1557  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_SingleThreaded_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.SingleThreadedCache))
  1558  		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberMultiThreaded:
  1559  			var inputToConversion = Aws_cryptography_materialProviders_CacheType_MultiThreaded_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberMultiThreaded).Value)
  1560  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_MultiThreaded_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.MultiThreadedCache))
  1561  		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberStormTracking:
  1562  			var inputToConversion = Aws_cryptography_materialProviders_CacheType_StormTracking_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberStormTracking).Value)
  1563  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_StormTracking_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.StormTrackingCache))
  1564  		case *awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared:
  1565  			var inputToConversion = func() Wrappers.Option {
  1566  				if (input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared).Value) == nil {
  1567  					return Wrappers.Companion_Option_.Create_None_()
  1568  				}
  1569  				return Wrappers.Companion_Option_.Create_Some_(CryptographicMaterialsCache_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CacheTypeMemberShared).Value))
  1570  			}()
  1571  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_CacheType_{}.Create_Shared_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCache))
  1572  
  1573  		default:
  1574  			panic("Unhandled union type")
  1575  		}
  1576  	}()
  1577  }
  1578  
  1579  func Aws_cryptography_materialProviders_CreateMultiKeyringInput_childKeyrings_ToDafny(input []awscryptographymaterialproviderssmithygeneratedtypes.IKeyring) dafny.Sequence {
  1580  	return func() dafny.Sequence {
  1581  
  1582  		var fieldValue []interface{} = make([]interface{}, 0)
  1583  		for _, val := range input {
  1584  			element := Keyring_ToDafny(val)
  1585  			fieldValue = append(fieldValue, element)
  1586  		}
  1587  		return dafny.SeqOf(fieldValue...)
  1588  	}()
  1589  }
  1590  
  1591  func Aws_cryptography_materialProviders_CreateRawAesKeyringInput_keyNamespace_ToDafny(input string) dafny.Sequence {
  1592  	return func() dafny.Sequence {
  1593  
  1594  		return func() dafny.Sequence {
  1595  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
  1596  			if err != nil {
  1597  				panic("invalid utf8 input provided")
  1598  			}
  1599  			return res
  1600  		}()
  1601  	}()
  1602  }
  1603  
  1604  func Aws_cryptography_materialProviders_CreateRawAesKeyringInput_keyName_ToDafny(input string) dafny.Sequence {
  1605  	return func() dafny.Sequence {
  1606  
  1607  		return func() dafny.Sequence {
  1608  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
  1609  			if err != nil {
  1610  				panic("invalid utf8 input provided")
  1611  			}
  1612  			return res
  1613  		}()
  1614  	}()
  1615  }
  1616  
  1617  func Aws_cryptography_materialProviders_CreateRawAesKeyringInput_wrappingKey_ToDafny(input []byte) dafny.Sequence {
  1618  	return func() dafny.Sequence {
  1619  		var v []interface{}
  1620  		if input == nil {
  1621  			return nil
  1622  		}
  1623  		for _, e := range input {
  1624  			v = append(v, e)
  1625  		}
  1626  		return dafny.SeqOf(v...)
  1627  	}()
  1628  }
  1629  
  1630  func Aws_cryptography_materialProviders_CreateRawAesKeyringInput_wrappingAlg_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.AesWrappingAlg) AwsCryptographyMaterialProvidersTypes.AesWrappingAlg {
  1631  	return func() AwsCryptographyMaterialProvidersTypes.AesWrappingAlg {
  1632  
  1633  		var index int
  1634  		for _, enumVal := range input.Values() {
  1635  			index++
  1636  			if enumVal == input {
  1637  				break
  1638  			}
  1639  		}
  1640  		var enum interface{}
  1641  		for allEnums, i := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_AesWrappingAlg_{}.AllSingletonConstructors()), 0; i < index; i++ {
  1642  			var ok bool
  1643  			enum, ok = allEnums()
  1644  			if !ok {
  1645  				break
  1646  			}
  1647  		}
  1648  		return enum.(AwsCryptographyMaterialProvidersTypes.AesWrappingAlg)
  1649  	}()
  1650  }
  1651  
  1652  func Aws_cryptography_materialProviders_CreateRawEcdhKeyringInput_KeyAgreementScheme_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurations) AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations {
  1653  	return func() AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations {
  1654  
  1655  		switch input.(type) {
  1656  		case *awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberPublicKeyDiscovery:
  1657  			var inputToConversion = Aws_cryptography_materialProviders_RawEcdhStaticConfigurations_PublicKeyDiscovery_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberPublicKeyDiscovery).Value)
  1658  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_RawEcdhStaticConfigurations_{}.Create_PublicKeyDiscovery_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.PublicKeyDiscoveryInput))
  1659  		case *awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberRawPrivateKeyToStaticPublicKey:
  1660  			var inputToConversion = Aws_cryptography_materialProviders_RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberRawPrivateKeyToStaticPublicKey).Value)
  1661  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_RawEcdhStaticConfigurations_{}.Create_RawPrivateKeyToStaticPublicKey_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.RawPrivateKeyToStaticPublicKeyInput))
  1662  		case *awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberEphemeralPrivateKeyToStaticPublicKey:
  1663  			var inputToConversion = Aws_cryptography_materialProviders_RawEcdhStaticConfigurations_EphemeralPrivateKeyToStaticPublicKey_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberEphemeralPrivateKeyToStaticPublicKey).Value)
  1664  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_RawEcdhStaticConfigurations_{}.Create_EphemeralPrivateKeyToStaticPublicKey_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.EphemeralPrivateKeyToStaticPublicKeyInput))
  1665  
  1666  		default:
  1667  			panic("Unhandled union type")
  1668  		}
  1669  	}()
  1670  }
  1671  
  1672  func Aws_cryptography_materialProviders_RawEcdhStaticConfigurations_PublicKeyDiscovery_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.PublicKeyDiscoveryInput) Wrappers.Option {
  1673  	return func() Wrappers.Option {
  1674  
  1675  		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_PublicKeyDiscoveryInput_.Create_PublicKeyDiscoveryInput_(Aws_cryptography_materialProviders_PublicKeyDiscoveryInput_recipientStaticPrivateKey_ToDafny(input.RecipientStaticPrivateKey)))
  1676  	}()
  1677  }
  1678  
  1679  func Aws_cryptography_materialProviders_PublicKeyDiscoveryInput_recipientStaticPrivateKey_ToDafny(input []byte) dafny.Sequence {
  1680  	return func() dafny.Sequence {
  1681  		var v []interface{}
  1682  		if input == nil {
  1683  			return nil
  1684  		}
  1685  		for _, e := range input {
  1686  			v = append(v, e)
  1687  		}
  1688  		return dafny.SeqOf(v...)
  1689  	}()
  1690  }
  1691  
  1692  func Aws_cryptography_materialProviders_RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.RawPrivateKeyToStaticPublicKeyInput) Wrappers.Option {
  1693  	return func() Wrappers.Option {
  1694  
  1695  		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)))
  1696  	}()
  1697  }
  1698  
  1699  func Aws_cryptography_materialProviders_RawPrivateKeyToStaticPublicKeyInput_senderStaticPrivateKey_ToDafny(input []byte) dafny.Sequence {
  1700  	return func() dafny.Sequence {
  1701  		var v []interface{}
  1702  		if input == nil {
  1703  			return nil
  1704  		}
  1705  		for _, e := range input {
  1706  			v = append(v, e)
  1707  		}
  1708  		return dafny.SeqOf(v...)
  1709  	}()
  1710  }
  1711  
  1712  func Aws_cryptography_materialProviders_RawPrivateKeyToStaticPublicKeyInput_recipientPublicKey_ToDafny(input []byte) dafny.Sequence {
  1713  	return func() dafny.Sequence {
  1714  		var v []interface{}
  1715  		if input == nil {
  1716  			return nil
  1717  		}
  1718  		for _, e := range input {
  1719  			v = append(v, e)
  1720  		}
  1721  		return dafny.SeqOf(v...)
  1722  	}()
  1723  }
  1724  
  1725  func Aws_cryptography_materialProviders_RawEcdhStaticConfigurations_EphemeralPrivateKeyToStaticPublicKey_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.EphemeralPrivateKeyToStaticPublicKeyInput) Wrappers.Option {
  1726  	return func() Wrappers.Option {
  1727  
  1728  		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_EphemeralPrivateKeyToStaticPublicKeyInput_.Create_EphemeralPrivateKeyToStaticPublicKeyInput_(Aws_cryptography_materialProviders_EphemeralPrivateKeyToStaticPublicKeyInput_recipientPublicKey_ToDafny(input.RecipientPublicKey)))
  1729  	}()
  1730  }
  1731  
  1732  func Aws_cryptography_materialProviders_EphemeralPrivateKeyToStaticPublicKeyInput_recipientPublicKey_ToDafny(input []byte) dafny.Sequence {
  1733  	return func() dafny.Sequence {
  1734  		var v []interface{}
  1735  		if input == nil {
  1736  			return nil
  1737  		}
  1738  		for _, e := range input {
  1739  			v = append(v, e)
  1740  		}
  1741  		return dafny.SeqOf(v...)
  1742  	}()
  1743  }
  1744  
  1745  func Aws_cryptography_materialProviders_CreateRawEcdhKeyringInput_curveSpec_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.ECDHCurveSpec) AwsCryptographyPrimitivesTypes.ECDHCurveSpec {
  1746  	return func() AwsCryptographyPrimitivesTypes.ECDHCurveSpec {
  1747  
  1748  		var index int
  1749  		for _, enumVal := range input.Values() {
  1750  			index++
  1751  			if enumVal == input {
  1752  				break
  1753  			}
  1754  		}
  1755  		var enum interface{}
  1756  		for allEnums, i := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDHCurveSpec_{}.AllSingletonConstructors()), 0; i < index; i++ {
  1757  			var ok bool
  1758  			enum, ok = allEnums()
  1759  			if !ok {
  1760  				break
  1761  			}
  1762  		}
  1763  		return enum.(AwsCryptographyPrimitivesTypes.ECDHCurveSpec)
  1764  	}()
  1765  }
  1766  
  1767  func Aws_cryptography_materialProviders_CreateRawRsaKeyringInput_keyNamespace_ToDafny(input string) dafny.Sequence {
  1768  	return func() dafny.Sequence {
  1769  
  1770  		return func() dafny.Sequence {
  1771  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
  1772  			if err != nil {
  1773  				panic("invalid utf8 input provided")
  1774  			}
  1775  			return res
  1776  		}()
  1777  	}()
  1778  }
  1779  
  1780  func Aws_cryptography_materialProviders_CreateRawRsaKeyringInput_keyName_ToDafny(input string) dafny.Sequence {
  1781  	return func() dafny.Sequence {
  1782  
  1783  		return func() dafny.Sequence {
  1784  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
  1785  			if err != nil {
  1786  				panic("invalid utf8 input provided")
  1787  			}
  1788  			return res
  1789  		}()
  1790  	}()
  1791  }
  1792  
  1793  func Aws_cryptography_materialProviders_CreateRawRsaKeyringInput_paddingScheme_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.PaddingScheme) AwsCryptographyMaterialProvidersTypes.PaddingScheme {
  1794  	return func() AwsCryptographyMaterialProvidersTypes.PaddingScheme {
  1795  
  1796  		var index int
  1797  		for _, enumVal := range input.Values() {
  1798  			index++
  1799  			if enumVal == input {
  1800  				break
  1801  			}
  1802  		}
  1803  		var enum interface{}
  1804  		for allEnums, i := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_PaddingScheme_{}.AllSingletonConstructors()), 0; i < index; i++ {
  1805  			var ok bool
  1806  			enum, ok = allEnums()
  1807  			if !ok {
  1808  				break
  1809  			}
  1810  		}
  1811  		return enum.(AwsCryptographyMaterialProvidersTypes.PaddingScheme)
  1812  	}()
  1813  }
  1814  
  1815  func Aws_cryptography_materialProviders_CreateRawRsaKeyringInput_publicKey_ToDafny(input []byte) Wrappers.Option {
  1816  	return func() Wrappers.Option {
  1817  		var v []interface{}
  1818  		if input == nil {
  1819  			return Wrappers.Companion_Option_.Create_None_()
  1820  		}
  1821  		for _, e := range input {
  1822  			v = append(v, e)
  1823  		}
  1824  		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...))
  1825  	}()
  1826  }
  1827  
  1828  func Aws_cryptography_materialProviders_CreateRawRsaKeyringInput_privateKey_ToDafny(input []byte) Wrappers.Option {
  1829  	return func() Wrappers.Option {
  1830  		var v []interface{}
  1831  		if input == nil {
  1832  			return Wrappers.Companion_Option_.Create_None_()
  1833  		}
  1834  		for _, e := range input {
  1835  			v = append(v, e)
  1836  		}
  1837  		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...))
  1838  	}()
  1839  }
  1840  
  1841  func Aws_cryptography_materialProviders_CreateRequiredEncryptionContextCMMInput_requiredEncryptionContextKeys_ToDafny(input []string) dafny.Sequence {
  1842  	return func() dafny.Sequence {
  1843  
  1844  		var fieldValue []interface{} = make([]interface{}, 0)
  1845  		for _, val := range input {
  1846  			element := Aws_cryptography_materialProviders_EncryptionContextKeys_member_ToDafny(val)
  1847  			fieldValue = append(fieldValue, element)
  1848  		}
  1849  		return dafny.SeqOf(fieldValue...)
  1850  	}()
  1851  }
  1852  
  1853  func Aws_cryptography_materialProviders_EncryptionContextKeys_member_ToDafny(input string) dafny.Sequence {
  1854  	return func() dafny.Sequence {
  1855  
  1856  		return dafny.SeqOf(func() []interface{} {
  1857  			if !utf8.ValidString(input) {
  1858  				panic("invalid utf8 input provided")
  1859  			}
  1860  			b := []byte(input)
  1861  			f := make([]interface{}, len(b))
  1862  			for i, v := range b {
  1863  				f[i] = v
  1864  			}
  1865  			return f
  1866  		}()...)
  1867  	}()
  1868  }
  1869  
  1870  func Aws_cryptography_materialProviders_DecryptionMaterials_algorithmSuite_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteInfo) AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo {
  1871  	return func() AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo {
  1872  
  1873  		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))
  1874  	}()
  1875  }
  1876  
  1877  func Aws_cryptography_materialProviders_AlgorithmSuiteInfo_id_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteId) AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId {
  1878  	return func() AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId {
  1879  
  1880  		switch input.(type) {
  1881  		case *awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK:
  1882  			var inputToConversion = Aws_cryptography_materialProviders_AlgorithmSuiteId_ESDK_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK).Value)
  1883  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_AlgorithmSuiteId_{}.Create_ESDK_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId))
  1884  		case *awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE:
  1885  			var inputToConversion = Aws_cryptography_materialProviders_AlgorithmSuiteId_DBE_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE).Value)
  1886  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_AlgorithmSuiteId_{}.Create_DBE_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId))
  1887  
  1888  		default:
  1889  			panic("Unhandled union type")
  1890  		}
  1891  	}()
  1892  }
  1893  
  1894  func Aws_cryptography_materialProviders_AlgorithmSuiteId_ESDK_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.ESDKAlgorithmSuiteId) Wrappers.Option {
  1895  	return func() Wrappers.Option {
  1896  
  1897  		var index int
  1898  		for _, enumVal := range input.Values() {
  1899  			index++
  1900  			if enumVal == input {
  1901  				break
  1902  			}
  1903  		}
  1904  		var enum interface{}
  1905  		for allEnums, i := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_ESDKAlgorithmSuiteId_{}.AllSingletonConstructors()), 0; i < index; i++ {
  1906  			var ok bool
  1907  			enum, ok = allEnums()
  1908  			if !ok {
  1909  				break
  1910  			}
  1911  		}
  1912  		return Wrappers.Companion_Option_.Create_Some_(enum.(AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId))
  1913  	}()
  1914  }
  1915  
  1916  func Aws_cryptography_materialProviders_AlgorithmSuiteId_DBE_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DBEAlgorithmSuiteId) Wrappers.Option {
  1917  	return func() Wrappers.Option {
  1918  
  1919  		var index int
  1920  		for _, enumVal := range input.Values() {
  1921  			index++
  1922  			if enumVal == input {
  1923  				break
  1924  			}
  1925  		}
  1926  		var enum interface{}
  1927  		for allEnums, i := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_DBEAlgorithmSuiteId_{}.AllSingletonConstructors()), 0; i < index; i++ {
  1928  			var ok bool
  1929  			enum, ok = allEnums()
  1930  			if !ok {
  1931  				break
  1932  			}
  1933  		}
  1934  		return Wrappers.Companion_Option_.Create_Some_(enum.(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId))
  1935  	}()
  1936  }
  1937  
  1938  func Aws_cryptography_materialProviders_AlgorithmSuiteInfo_binaryId_ToDafny(input []byte) dafny.Sequence {
  1939  	return func() dafny.Sequence {
  1940  		var v []interface{}
  1941  		if input == nil {
  1942  			return nil
  1943  		}
  1944  		for _, e := range input {
  1945  			v = append(v, e)
  1946  		}
  1947  		return dafny.SeqOf(v...)
  1948  	}()
  1949  }
  1950  
  1951  func Aws_cryptography_materialProviders_AlgorithmSuiteInfo_messageVersion_ToDafny(input int32) int32 {
  1952  	return func() int32 {
  1953  
  1954  		return input
  1955  	}()
  1956  }
  1957  
  1958  func Aws_cryptography_materialProviders_AlgorithmSuiteInfo_encrypt_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.Encrypt) AwsCryptographyMaterialProvidersTypes.Encrypt {
  1959  	return func() AwsCryptographyMaterialProvidersTypes.Encrypt {
  1960  
  1961  		switch input.(type) {
  1962  		case *awscryptographymaterialproviderssmithygeneratedtypes.EncryptMemberAES_GCM:
  1963  			var inputToConversion = Aws_cryptography_materialProviders_Encrypt_AES_GCM_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.EncryptMemberAES_GCM).Value)
  1964  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_Encrypt_{}.Create_AES__GCM_(inputToConversion.UnwrapOr(nil).(AwsCryptographyPrimitivesTypes.AES__GCM))
  1965  
  1966  		default:
  1967  			panic("Unhandled union type")
  1968  		}
  1969  	}()
  1970  }
  1971  
  1972  func Aws_cryptography_materialProviders_Encrypt_AES_GCM_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.AES_GCM) Wrappers.Option {
  1973  	return func() Wrappers.Option {
  1974  
  1975  		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)))
  1976  	}()
  1977  }
  1978  
  1979  func Aws_cryptography_materialProviders_AlgorithmSuiteInfo_kdf_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithm) AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm {
  1980  	return func() AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm {
  1981  
  1982  		switch input.(type) {
  1983  		case *awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberHKDF:
  1984  			var inputToConversion = Aws_cryptography_materialProviders_DerivationAlgorithm_HKDF_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberHKDF).Value)
  1985  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_DerivationAlgorithm_{}.Create_HKDF_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.HKDF))
  1986  		case *awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberIDENTITY:
  1987  			var inputToConversion = Aws_cryptography_materialProviders_DerivationAlgorithm_IDENTITY_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberIDENTITY).Value)
  1988  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_DerivationAlgorithm_{}.Create_IDENTITY_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.IDENTITY))
  1989  		case *awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberNone:
  1990  			var inputToConversion = Aws_cryptography_materialProviders_DerivationAlgorithm_None_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberNone).Value)
  1991  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_DerivationAlgorithm_{}.Create_None_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.None))
  1992  
  1993  		default:
  1994  			panic("Unhandled union type")
  1995  		}
  1996  	}()
  1997  }
  1998  
  1999  func Aws_cryptography_materialProviders_DerivationAlgorithm_HKDF_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.HKDF) Wrappers.Option {
  2000  	return func() Wrappers.Option {
  2001  
  2002  		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)))
  2003  	}()
  2004  }
  2005  
  2006  func Aws_cryptography_materialProviders_HKDF_hmac_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm) AwsCryptographyPrimitivesTypes.DigestAlgorithm {
  2007  	return func() AwsCryptographyPrimitivesTypes.DigestAlgorithm {
  2008  
  2009  		var index int
  2010  		for _, enumVal := range input.Values() {
  2011  			index++
  2012  			if enumVal == input {
  2013  				break
  2014  			}
  2015  		}
  2016  		var enum interface{}
  2017  		for allEnums, i := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_DigestAlgorithm_{}.AllSingletonConstructors()), 0; i < index; i++ {
  2018  			var ok bool
  2019  			enum, ok = allEnums()
  2020  			if !ok {
  2021  				break
  2022  			}
  2023  		}
  2024  		return enum.(AwsCryptographyPrimitivesTypes.DigestAlgorithm)
  2025  	}()
  2026  }
  2027  
  2028  func Aws_cryptography_materialProviders_HKDF_saltLength_ToDafny(input int32) int32 {
  2029  	return func() int32 {
  2030  
  2031  		return input
  2032  	}()
  2033  }
  2034  
  2035  func Aws_cryptography_materialProviders_HKDF_inputKeyLength_ToDafny(input int32) int32 {
  2036  	return func() int32 {
  2037  
  2038  		return input
  2039  	}()
  2040  }
  2041  
  2042  func Aws_cryptography_materialProviders_HKDF_outputKeyLength_ToDafny(input int32) int32 {
  2043  	return func() int32 {
  2044  
  2045  		return input
  2046  	}()
  2047  }
  2048  
  2049  func Aws_cryptography_materialProviders_DerivationAlgorithm_IDENTITY_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.IDENTITY) Wrappers.Option {
  2050  	return func() Wrappers.Option {
  2051  
  2052  		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_IDENTITY_.Create_IDENTITY_())
  2053  	}()
  2054  }
  2055  
  2056  func Aws_cryptography_materialProviders_DerivationAlgorithm_None_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.None) Wrappers.Option {
  2057  	return func() Wrappers.Option {
  2058  
  2059  		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_())
  2060  	}()
  2061  }
  2062  
  2063  func Aws_cryptography_materialProviders_AlgorithmSuiteInfo_commitment_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithm) AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm {
  2064  	return func() AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm {
  2065  
  2066  		switch input.(type) {
  2067  		case *awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberHKDF:
  2068  			var inputToConversion = Aws_cryptography_materialProviders_DerivationAlgorithm_HKDF_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberHKDF).Value)
  2069  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_DerivationAlgorithm_{}.Create_HKDF_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.HKDF))
  2070  		case *awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberIDENTITY:
  2071  			var inputToConversion = Aws_cryptography_materialProviders_DerivationAlgorithm_IDENTITY_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberIDENTITY).Value)
  2072  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_DerivationAlgorithm_{}.Create_IDENTITY_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.IDENTITY))
  2073  		case *awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberNone:
  2074  			var inputToConversion = Aws_cryptography_materialProviders_DerivationAlgorithm_None_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberNone).Value)
  2075  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_DerivationAlgorithm_{}.Create_None_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.None))
  2076  
  2077  		default:
  2078  			panic("Unhandled union type")
  2079  		}
  2080  	}()
  2081  }
  2082  
  2083  func Aws_cryptography_materialProviders_AlgorithmSuiteInfo_signature_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.SignatureAlgorithm) AwsCryptographyMaterialProvidersTypes.SignatureAlgorithm {
  2084  	return func() AwsCryptographyMaterialProvidersTypes.SignatureAlgorithm {
  2085  
  2086  		switch input.(type) {
  2087  		case *awscryptographymaterialproviderssmithygeneratedtypes.SignatureAlgorithmMemberECDSA:
  2088  			var inputToConversion = Aws_cryptography_materialProviders_SignatureAlgorithm_ECDSA_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.SignatureAlgorithmMemberECDSA).Value)
  2089  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_SignatureAlgorithm_{}.Create_ECDSA_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ECDSA))
  2090  		case *awscryptographymaterialproviderssmithygeneratedtypes.SignatureAlgorithmMemberNone:
  2091  			var inputToConversion = Aws_cryptography_materialProviders_SignatureAlgorithm_None_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.SignatureAlgorithmMemberNone).Value)
  2092  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_SignatureAlgorithm_{}.Create_None_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.None))
  2093  
  2094  		default:
  2095  			panic("Unhandled union type")
  2096  		}
  2097  	}()
  2098  }
  2099  
  2100  func Aws_cryptography_materialProviders_SignatureAlgorithm_ECDSA_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.ECDSA) Wrappers.Option {
  2101  	return func() Wrappers.Option {
  2102  
  2103  		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_ECDSA_.Create_ECDSA_(Aws_cryptography_materialProviders_ECDSA_curve_ToDafny(input.Curve)))
  2104  	}()
  2105  }
  2106  
  2107  func Aws_cryptography_materialProviders_ECDSA_curve_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.ECDSASignatureAlgorithm) AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm {
  2108  	return func() AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm {
  2109  
  2110  		var index int
  2111  		for _, enumVal := range input.Values() {
  2112  			index++
  2113  			if enumVal == input {
  2114  				break
  2115  			}
  2116  		}
  2117  		var enum interface{}
  2118  		for allEnums, i := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_ECDSASignatureAlgorithm_{}.AllSingletonConstructors()), 0; i < index; i++ {
  2119  			var ok bool
  2120  			enum, ok = allEnums()
  2121  			if !ok {
  2122  				break
  2123  			}
  2124  		}
  2125  		return enum.(AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm)
  2126  	}()
  2127  }
  2128  
  2129  func Aws_cryptography_materialProviders_SignatureAlgorithm_None_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.None) Wrappers.Option {
  2130  	return func() Wrappers.Option {
  2131  
  2132  		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_())
  2133  	}()
  2134  }
  2135  
  2136  func Aws_cryptography_materialProviders_AlgorithmSuiteInfo_symmetricSignature_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.SymmetricSignatureAlgorithm) AwsCryptographyMaterialProvidersTypes.SymmetricSignatureAlgorithm {
  2137  	return func() AwsCryptographyMaterialProvidersTypes.SymmetricSignatureAlgorithm {
  2138  
  2139  		switch input.(type) {
  2140  		case *awscryptographymaterialproviderssmithygeneratedtypes.SymmetricSignatureAlgorithmMemberHMAC:
  2141  			var inputToConversion = Aws_cryptography_materialProviders_SymmetricSignatureAlgorithm_HMAC_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.SymmetricSignatureAlgorithmMemberHMAC).Value)
  2142  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_SymmetricSignatureAlgorithm_{}.Create_HMAC_(inputToConversion.UnwrapOr(nil).(AwsCryptographyPrimitivesTypes.DigestAlgorithm))
  2143  		case *awscryptographymaterialproviderssmithygeneratedtypes.SymmetricSignatureAlgorithmMemberNone:
  2144  			var inputToConversion = Aws_cryptography_materialProviders_SymmetricSignatureAlgorithm_None_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.SymmetricSignatureAlgorithmMemberNone).Value)
  2145  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_SymmetricSignatureAlgorithm_{}.Create_None_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.None))
  2146  
  2147  		default:
  2148  			panic("Unhandled union type")
  2149  		}
  2150  	}()
  2151  }
  2152  
  2153  func Aws_cryptography_materialProviders_SymmetricSignatureAlgorithm_HMAC_ToDafny(input awscryptographyprimitivessmithygeneratedtypes.DigestAlgorithm) Wrappers.Option {
  2154  	return func() Wrappers.Option {
  2155  
  2156  		var index int
  2157  		for _, enumVal := range input.Values() {
  2158  			index++
  2159  			if enumVal == input {
  2160  				break
  2161  			}
  2162  		}
  2163  		var enum interface{}
  2164  		for allEnums, i := dafny.Iterate(AwsCryptographyPrimitivesTypes.CompanionStruct_DigestAlgorithm_{}.AllSingletonConstructors()), 0; i < index; i++ {
  2165  			var ok bool
  2166  			enum, ok = allEnums()
  2167  			if !ok {
  2168  				break
  2169  			}
  2170  		}
  2171  		return Wrappers.Companion_Option_.Create_Some_(enum.(AwsCryptographyPrimitivesTypes.DigestAlgorithm))
  2172  	}()
  2173  }
  2174  
  2175  func Aws_cryptography_materialProviders_SymmetricSignatureAlgorithm_None_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.None) Wrappers.Option {
  2176  	return func() Wrappers.Option {
  2177  
  2178  		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_None_.Create_None_())
  2179  	}()
  2180  }
  2181  
  2182  func Aws_cryptography_materialProviders_AlgorithmSuiteInfo_edkWrapping_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.EdkWrappingAlgorithm) AwsCryptographyMaterialProvidersTypes.EdkWrappingAlgorithm {
  2183  	return func() AwsCryptographyMaterialProvidersTypes.EdkWrappingAlgorithm {
  2184  
  2185  		switch input.(type) {
  2186  		case *awscryptographymaterialproviderssmithygeneratedtypes.EdkWrappingAlgorithmMemberDIRECT_KEY_WRAPPING:
  2187  			var inputToConversion = Aws_cryptography_materialProviders_EdkWrappingAlgorithm_DIRECT_KEY_WRAPPING_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.EdkWrappingAlgorithmMemberDIRECT_KEY_WRAPPING).Value)
  2188  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_EdkWrappingAlgorithm_{}.Create_DIRECT__KEY__WRAPPING_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DIRECT__KEY__WRAPPING))
  2189  		case *awscryptographymaterialproviderssmithygeneratedtypes.EdkWrappingAlgorithmMemberIntermediateKeyWrapping:
  2190  			var inputToConversion = Aws_cryptography_materialProviders_EdkWrappingAlgorithm_IntermediateKeyWrapping_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.EdkWrappingAlgorithmMemberIntermediateKeyWrapping).Value)
  2191  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_EdkWrappingAlgorithm_{}.Create_IntermediateKeyWrapping_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.IntermediateKeyWrapping))
  2192  
  2193  		default:
  2194  			panic("Unhandled union type")
  2195  		}
  2196  	}()
  2197  }
  2198  
  2199  func Aws_cryptography_materialProviders_EdkWrappingAlgorithm_DIRECT_KEY_WRAPPING_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DIRECT_KEY_WRAPPING) Wrappers.Option {
  2200  	return func() Wrappers.Option {
  2201  
  2202  		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.Companion_DIRECT__KEY__WRAPPING_.Create_DIRECT__KEY__WRAPPING_())
  2203  	}()
  2204  }
  2205  
  2206  func Aws_cryptography_materialProviders_EdkWrappingAlgorithm_IntermediateKeyWrapping_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.IntermediateKeyWrapping) Wrappers.Option {
  2207  	return func() Wrappers.Option {
  2208  
  2209  		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)))
  2210  	}()
  2211  }
  2212  
  2213  func Aws_cryptography_materialProviders_IntermediateKeyWrapping_keyEncryptionKeyKdf_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithm) AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm {
  2214  	return func() AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm {
  2215  
  2216  		switch input.(type) {
  2217  		case *awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberHKDF:
  2218  			var inputToConversion = Aws_cryptography_materialProviders_DerivationAlgorithm_HKDF_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberHKDF).Value)
  2219  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_DerivationAlgorithm_{}.Create_HKDF_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.HKDF))
  2220  		case *awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberIDENTITY:
  2221  			var inputToConversion = Aws_cryptography_materialProviders_DerivationAlgorithm_IDENTITY_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberIDENTITY).Value)
  2222  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_DerivationAlgorithm_{}.Create_IDENTITY_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.IDENTITY))
  2223  		case *awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberNone:
  2224  			var inputToConversion = Aws_cryptography_materialProviders_DerivationAlgorithm_None_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberNone).Value)
  2225  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_DerivationAlgorithm_{}.Create_None_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.None))
  2226  
  2227  		default:
  2228  			panic("Unhandled union type")
  2229  		}
  2230  	}()
  2231  }
  2232  
  2233  func Aws_cryptography_materialProviders_IntermediateKeyWrapping_macKeyKdf_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithm) AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm {
  2234  	return func() AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm {
  2235  
  2236  		switch input.(type) {
  2237  		case *awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberHKDF:
  2238  			var inputToConversion = Aws_cryptography_materialProviders_DerivationAlgorithm_HKDF_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberHKDF).Value)
  2239  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_DerivationAlgorithm_{}.Create_HKDF_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.HKDF))
  2240  		case *awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberIDENTITY:
  2241  			var inputToConversion = Aws_cryptography_materialProviders_DerivationAlgorithm_IDENTITY_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberIDENTITY).Value)
  2242  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_DerivationAlgorithm_{}.Create_IDENTITY_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.IDENTITY))
  2243  		case *awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberNone:
  2244  			var inputToConversion = Aws_cryptography_materialProviders_DerivationAlgorithm_None_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.DerivationAlgorithmMemberNone).Value)
  2245  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_DerivationAlgorithm_{}.Create_None_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.None))
  2246  
  2247  		default:
  2248  			panic("Unhandled union type")
  2249  		}
  2250  	}()
  2251  }
  2252  
  2253  func Aws_cryptography_materialProviders_IntermediateKeyWrapping_pdkEncryptAlgorithm_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.Encrypt) AwsCryptographyMaterialProvidersTypes.Encrypt {
  2254  	return func() AwsCryptographyMaterialProvidersTypes.Encrypt {
  2255  
  2256  		switch input.(type) {
  2257  		case *awscryptographymaterialproviderssmithygeneratedtypes.EncryptMemberAES_GCM:
  2258  			var inputToConversion = Aws_cryptography_materialProviders_Encrypt_AES_GCM_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.EncryptMemberAES_GCM).Value)
  2259  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_Encrypt_{}.Create_AES__GCM_(inputToConversion.UnwrapOr(nil).(AwsCryptographyPrimitivesTypes.AES__GCM))
  2260  
  2261  		default:
  2262  			panic("Unhandled union type")
  2263  		}
  2264  	}()
  2265  }
  2266  
  2267  func Aws_cryptography_materialProviders_DecryptionMaterials_encryptionContext_ToDafny(input map[string]string) dafny.Map {
  2268  	return func() dafny.Map {
  2269  		fieldValue := dafny.NewMapBuilder()
  2270  		for key, val := range input {
  2271  			fieldValue.Add(Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val))
  2272  		}
  2273  		return fieldValue.ToMap()
  2274  	}()
  2275  }
  2276  
  2277  func Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(input string) dafny.Sequence {
  2278  	return func() dafny.Sequence {
  2279  
  2280  		return dafny.SeqOf(func() []interface{} {
  2281  			if !utf8.ValidString(input) {
  2282  				panic("invalid utf8 input provided")
  2283  			}
  2284  			b := []byte(input)
  2285  			f := make([]interface{}, len(b))
  2286  			for i, v := range b {
  2287  				f[i] = v
  2288  			}
  2289  			return f
  2290  		}()...)
  2291  	}()
  2292  }
  2293  
  2294  func Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(input string) dafny.Sequence {
  2295  	return func() dafny.Sequence {
  2296  
  2297  		return dafny.SeqOf(func() []interface{} {
  2298  			if !utf8.ValidString(input) {
  2299  				panic("invalid utf8 input provided")
  2300  			}
  2301  			b := []byte(input)
  2302  			f := make([]interface{}, len(b))
  2303  			for i, v := range b {
  2304  				f[i] = v
  2305  			}
  2306  			return f
  2307  		}()...)
  2308  	}()
  2309  }
  2310  
  2311  func Aws_cryptography_materialProviders_DecryptionMaterials_requiredEncryptionContextKeys_ToDafny(input []string) dafny.Sequence {
  2312  	return func() dafny.Sequence {
  2313  
  2314  		var fieldValue []interface{} = make([]interface{}, 0)
  2315  		for _, val := range input {
  2316  			element := Aws_cryptography_materialProviders_EncryptionContextKeys_member_ToDafny(val)
  2317  			fieldValue = append(fieldValue, element)
  2318  		}
  2319  		return dafny.SeqOf(fieldValue...)
  2320  	}()
  2321  }
  2322  
  2323  func Aws_cryptography_materialProviders_DecryptionMaterials_plaintextDataKey_ToDafny(input []byte) Wrappers.Option {
  2324  	return func() Wrappers.Option {
  2325  		var v []interface{}
  2326  		if input == nil {
  2327  			return Wrappers.Companion_Option_.Create_None_()
  2328  		}
  2329  		for _, e := range input {
  2330  			v = append(v, e)
  2331  		}
  2332  		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...))
  2333  	}()
  2334  }
  2335  
  2336  func Aws_cryptography_materialProviders_DecryptionMaterials_verificationKey_ToDafny(input []byte) Wrappers.Option {
  2337  	return func() Wrappers.Option {
  2338  		var v []interface{}
  2339  		if input == nil {
  2340  			return Wrappers.Companion_Option_.Create_None_()
  2341  		}
  2342  		for _, e := range input {
  2343  			v = append(v, e)
  2344  		}
  2345  		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...))
  2346  	}()
  2347  }
  2348  
  2349  func Aws_cryptography_materialProviders_DecryptionMaterials_symmetricSigningKey_ToDafny(input []byte) Wrappers.Option {
  2350  	return func() Wrappers.Option {
  2351  		var v []interface{}
  2352  		if input == nil {
  2353  			return Wrappers.Companion_Option_.Create_None_()
  2354  		}
  2355  		for _, e := range input {
  2356  			v = append(v, e)
  2357  		}
  2358  		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...))
  2359  	}()
  2360  }
  2361  
  2362  func Aws_cryptography_materialProviders_EncryptionMaterials_algorithmSuite_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteInfo) AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo {
  2363  	return func() AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo {
  2364  
  2365  		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))
  2366  	}()
  2367  }
  2368  
  2369  func Aws_cryptography_materialProviders_EncryptionMaterials_encryptionContext_ToDafny(input map[string]string) dafny.Map {
  2370  	return func() dafny.Map {
  2371  		fieldValue := dafny.NewMapBuilder()
  2372  		for key, val := range input {
  2373  			fieldValue.Add(Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val))
  2374  		}
  2375  		return fieldValue.ToMap()
  2376  	}()
  2377  }
  2378  
  2379  func Aws_cryptography_materialProviders_EncryptionMaterials_encryptedDataKeys_ToDafny(input []awscryptographymaterialproviderssmithygeneratedtypes.EncryptedDataKey) dafny.Sequence {
  2380  	return func() dafny.Sequence {
  2381  
  2382  		var fieldValue []interface{} = make([]interface{}, 0)
  2383  		for _, val := range input {
  2384  			element := Aws_cryptography_materialProviders_EncryptedDataKeyList_member_ToDafny(val)
  2385  			fieldValue = append(fieldValue, element)
  2386  		}
  2387  		return dafny.SeqOf(fieldValue...)
  2388  	}()
  2389  }
  2390  
  2391  func Aws_cryptography_materialProviders_EncryptedDataKeyList_member_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.EncryptedDataKey) AwsCryptographyMaterialProvidersTypes.EncryptedDataKey {
  2392  	return func() AwsCryptographyMaterialProvidersTypes.EncryptedDataKey {
  2393  
  2394  		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))
  2395  	}()
  2396  }
  2397  
  2398  func Aws_cryptography_materialProviders_EncryptedDataKey_keyProviderId_ToDafny(input string) dafny.Sequence {
  2399  	return func() dafny.Sequence {
  2400  
  2401  		return dafny.SeqOf(func() []interface{} {
  2402  			if !utf8.ValidString(input) {
  2403  				panic("invalid utf8 input provided")
  2404  			}
  2405  			b := []byte(input)
  2406  			f := make([]interface{}, len(b))
  2407  			for i, v := range b {
  2408  				f[i] = v
  2409  			}
  2410  			return f
  2411  		}()...)
  2412  	}()
  2413  }
  2414  
  2415  func Aws_cryptography_materialProviders_EncryptedDataKey_keyProviderInfo_ToDafny(input []byte) dafny.Sequence {
  2416  	return func() dafny.Sequence {
  2417  		var v []interface{}
  2418  		if input == nil {
  2419  			return nil
  2420  		}
  2421  		for _, e := range input {
  2422  			v = append(v, e)
  2423  		}
  2424  		return dafny.SeqOf(v...)
  2425  	}()
  2426  }
  2427  
  2428  func Aws_cryptography_materialProviders_EncryptedDataKey_ciphertext_ToDafny(input []byte) dafny.Sequence {
  2429  	return func() dafny.Sequence {
  2430  		var v []interface{}
  2431  		if input == nil {
  2432  			return nil
  2433  		}
  2434  		for _, e := range input {
  2435  			v = append(v, e)
  2436  		}
  2437  		return dafny.SeqOf(v...)
  2438  	}()
  2439  }
  2440  
  2441  func Aws_cryptography_materialProviders_EncryptionMaterials_requiredEncryptionContextKeys_ToDafny(input []string) dafny.Sequence {
  2442  	return func() dafny.Sequence {
  2443  
  2444  		var fieldValue []interface{} = make([]interface{}, 0)
  2445  		for _, val := range input {
  2446  			element := Aws_cryptography_materialProviders_EncryptionContextKeys_member_ToDafny(val)
  2447  			fieldValue = append(fieldValue, element)
  2448  		}
  2449  		return dafny.SeqOf(fieldValue...)
  2450  	}()
  2451  }
  2452  
  2453  func Aws_cryptography_materialProviders_EncryptionMaterials_plaintextDataKey_ToDafny(input []byte) Wrappers.Option {
  2454  	return func() Wrappers.Option {
  2455  		var v []interface{}
  2456  		if input == nil {
  2457  			return Wrappers.Companion_Option_.Create_None_()
  2458  		}
  2459  		for _, e := range input {
  2460  			v = append(v, e)
  2461  		}
  2462  		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...))
  2463  	}()
  2464  }
  2465  
  2466  func Aws_cryptography_materialProviders_EncryptionMaterials_signingKey_ToDafny(input []byte) Wrappers.Option {
  2467  	return func() Wrappers.Option {
  2468  		var v []interface{}
  2469  		if input == nil {
  2470  			return Wrappers.Companion_Option_.Create_None_()
  2471  		}
  2472  		for _, e := range input {
  2473  			v = append(v, e)
  2474  		}
  2475  		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...))
  2476  	}()
  2477  }
  2478  
  2479  func Aws_cryptography_materialProviders_EncryptionMaterials_symmetricSigningKeys_ToDafny(input [][]byte) Wrappers.Option {
  2480  	return func() Wrappers.Option {
  2481  		if input == nil {
  2482  			return Wrappers.Companion_Option_.Create_None_()
  2483  		}
  2484  		var fieldValue []interface{} = make([]interface{}, 0)
  2485  		for _, val := range input {
  2486  			element := Aws_cryptography_materialProviders_SymmetricSigningKeyList_member_ToDafny(val)
  2487  			fieldValue = append(fieldValue, element)
  2488  		}
  2489  		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
  2490  	}()
  2491  }
  2492  
  2493  func Aws_cryptography_materialProviders_SymmetricSigningKeyList_member_ToDafny(input []byte) dafny.Sequence {
  2494  	return func() dafny.Sequence {
  2495  		var v []interface{}
  2496  		if input == nil {
  2497  			return nil
  2498  		}
  2499  		for _, e := range input {
  2500  			v = append(v, e)
  2501  		}
  2502  		return dafny.SeqOf(v...)
  2503  	}()
  2504  }
  2505  
  2506  func Aws_cryptography_materialProviders_GetAlgorithmSuiteInfoInput_binaryId_ToDafny(input []byte) dafny.Sequence {
  2507  	return func() dafny.Sequence {
  2508  		var v []interface{}
  2509  		if input == nil {
  2510  			return nil
  2511  		}
  2512  		for _, e := range input {
  2513  			v = append(v, e)
  2514  		}
  2515  		return dafny.SeqOf(v...)
  2516  	}()
  2517  }
  2518  
  2519  func Aws_cryptography_materialProviders_InitializeDecryptionMaterialsInput_algorithmSuiteId_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteId) AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId {
  2520  	return func() AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId {
  2521  
  2522  		switch input.(type) {
  2523  		case *awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK:
  2524  			var inputToConversion = Aws_cryptography_materialProviders_AlgorithmSuiteId_ESDK_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK).Value)
  2525  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_AlgorithmSuiteId_{}.Create_ESDK_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId))
  2526  		case *awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE:
  2527  			var inputToConversion = Aws_cryptography_materialProviders_AlgorithmSuiteId_DBE_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE).Value)
  2528  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_AlgorithmSuiteId_{}.Create_DBE_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId))
  2529  
  2530  		default:
  2531  			panic("Unhandled union type")
  2532  		}
  2533  	}()
  2534  }
  2535  
  2536  func Aws_cryptography_materialProviders_InitializeDecryptionMaterialsInput_encryptionContext_ToDafny(input map[string]string) dafny.Map {
  2537  	return func() dafny.Map {
  2538  		fieldValue := dafny.NewMapBuilder()
  2539  		for key, val := range input {
  2540  			fieldValue.Add(Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val))
  2541  		}
  2542  		return fieldValue.ToMap()
  2543  	}()
  2544  }
  2545  
  2546  func Aws_cryptography_materialProviders_InitializeDecryptionMaterialsInput_requiredEncryptionContextKeys_ToDafny(input []string) dafny.Sequence {
  2547  	return func() dafny.Sequence {
  2548  
  2549  		var fieldValue []interface{} = make([]interface{}, 0)
  2550  		for _, val := range input {
  2551  			element := Aws_cryptography_materialProviders_EncryptionContextKeys_member_ToDafny(val)
  2552  			fieldValue = append(fieldValue, element)
  2553  		}
  2554  		return dafny.SeqOf(fieldValue...)
  2555  	}()
  2556  }
  2557  
  2558  func Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_algorithmSuiteId_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteId) AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId {
  2559  	return func() AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId {
  2560  
  2561  		switch input.(type) {
  2562  		case *awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK:
  2563  			var inputToConversion = Aws_cryptography_materialProviders_AlgorithmSuiteId_ESDK_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK).Value)
  2564  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_AlgorithmSuiteId_{}.Create_ESDK_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId))
  2565  		case *awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE:
  2566  			var inputToConversion = Aws_cryptography_materialProviders_AlgorithmSuiteId_DBE_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE).Value)
  2567  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_AlgorithmSuiteId_{}.Create_DBE_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId))
  2568  
  2569  		default:
  2570  			panic("Unhandled union type")
  2571  		}
  2572  	}()
  2573  }
  2574  
  2575  func Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_encryptionContext_ToDafny(input map[string]string) dafny.Map {
  2576  	return func() dafny.Map {
  2577  		fieldValue := dafny.NewMapBuilder()
  2578  		for key, val := range input {
  2579  			fieldValue.Add(Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val))
  2580  		}
  2581  		return fieldValue.ToMap()
  2582  	}()
  2583  }
  2584  
  2585  func Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_requiredEncryptionContextKeys_ToDafny(input []string) dafny.Sequence {
  2586  	return func() dafny.Sequence {
  2587  
  2588  		var fieldValue []interface{} = make([]interface{}, 0)
  2589  		for _, val := range input {
  2590  			element := Aws_cryptography_materialProviders_EncryptionContextKeys_member_ToDafny(val)
  2591  			fieldValue = append(fieldValue, element)
  2592  		}
  2593  		return dafny.SeqOf(fieldValue...)
  2594  	}()
  2595  }
  2596  
  2597  func Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_signingKey_ToDafny(input []byte) Wrappers.Option {
  2598  	return func() Wrappers.Option {
  2599  		var v []interface{}
  2600  		if input == nil {
  2601  			return Wrappers.Companion_Option_.Create_None_()
  2602  		}
  2603  		for _, e := range input {
  2604  			v = append(v, e)
  2605  		}
  2606  		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...))
  2607  	}()
  2608  }
  2609  
  2610  func Aws_cryptography_materialProviders_InitializeEncryptionMaterialsInput_verificationKey_ToDafny(input []byte) Wrappers.Option {
  2611  	return func() Wrappers.Option {
  2612  		var v []interface{}
  2613  		if input == nil {
  2614  			return Wrappers.Companion_Option_.Create_None_()
  2615  		}
  2616  		for _, e := range input {
  2617  			v = append(v, e)
  2618  		}
  2619  		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...))
  2620  	}()
  2621  }
  2622  
  2623  func Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnDecryptInput_algorithm_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteId) AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId {
  2624  	return func() AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId {
  2625  
  2626  		switch input.(type) {
  2627  		case *awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK:
  2628  			var inputToConversion = Aws_cryptography_materialProviders_AlgorithmSuiteId_ESDK_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK).Value)
  2629  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_AlgorithmSuiteId_{}.Create_ESDK_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId))
  2630  		case *awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE:
  2631  			var inputToConversion = Aws_cryptography_materialProviders_AlgorithmSuiteId_DBE_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE).Value)
  2632  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_AlgorithmSuiteId_{}.Create_DBE_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId))
  2633  
  2634  		default:
  2635  			panic("Unhandled union type")
  2636  		}
  2637  	}()
  2638  }
  2639  
  2640  func Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnDecryptInput_commitmentPolicy_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicy) AwsCryptographyMaterialProvidersTypes.CommitmentPolicy {
  2641  	return func() AwsCryptographyMaterialProvidersTypes.CommitmentPolicy {
  2642  
  2643  		switch input.(type) {
  2644  		case *awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberESDK:
  2645  			var inputToConversion = Aws_cryptography_materialProviders_CommitmentPolicy_ESDK_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberESDK).Value)
  2646  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_CommitmentPolicy_{}.Create_ESDK_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy))
  2647  		case *awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberDBE:
  2648  			var inputToConversion = Aws_cryptography_materialProviders_CommitmentPolicy_DBE_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberDBE).Value)
  2649  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_CommitmentPolicy_{}.Create_DBE_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DBECommitmentPolicy))
  2650  
  2651  		default:
  2652  			panic("Unhandled union type")
  2653  		}
  2654  	}()
  2655  }
  2656  
  2657  func Aws_cryptography_materialProviders_CommitmentPolicy_ESDK_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.ESDKCommitmentPolicy) Wrappers.Option {
  2658  	return func() Wrappers.Option {
  2659  
  2660  		var index int
  2661  		for _, enumVal := range input.Values() {
  2662  			index++
  2663  			if enumVal == input {
  2664  				break
  2665  			}
  2666  		}
  2667  		var enum interface{}
  2668  		for allEnums, i := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_ESDKCommitmentPolicy_{}.AllSingletonConstructors()), 0; i < index; i++ {
  2669  			var ok bool
  2670  			enum, ok = allEnums()
  2671  			if !ok {
  2672  				break
  2673  			}
  2674  		}
  2675  		return Wrappers.Companion_Option_.Create_Some_(enum.(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy))
  2676  	}()
  2677  }
  2678  
  2679  func Aws_cryptography_materialProviders_CommitmentPolicy_DBE_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DBECommitmentPolicy) Wrappers.Option {
  2680  	return func() Wrappers.Option {
  2681  
  2682  		var index int
  2683  		for _, enumVal := range input.Values() {
  2684  			index++
  2685  			if enumVal == input {
  2686  				break
  2687  			}
  2688  		}
  2689  		var enum interface{}
  2690  		for allEnums, i := dafny.Iterate(AwsCryptographyMaterialProvidersTypes.CompanionStruct_DBECommitmentPolicy_{}.AllSingletonConstructors()), 0; i < index; i++ {
  2691  			var ok bool
  2692  			enum, ok = allEnums()
  2693  			if !ok {
  2694  				break
  2695  			}
  2696  		}
  2697  		return Wrappers.Companion_Option_.Create_Some_(enum.(AwsCryptographyMaterialProvidersTypes.DBECommitmentPolicy))
  2698  	}()
  2699  }
  2700  
  2701  func Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnEncryptInput_algorithm_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteId) AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId {
  2702  	return func() AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId {
  2703  
  2704  		switch input.(type) {
  2705  		case *awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK:
  2706  			var inputToConversion = Aws_cryptography_materialProviders_AlgorithmSuiteId_ESDK_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK).Value)
  2707  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_AlgorithmSuiteId_{}.Create_ESDK_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId))
  2708  		case *awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE:
  2709  			var inputToConversion = Aws_cryptography_materialProviders_AlgorithmSuiteId_DBE_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE).Value)
  2710  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_AlgorithmSuiteId_{}.Create_DBE_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId))
  2711  
  2712  		default:
  2713  			panic("Unhandled union type")
  2714  		}
  2715  	}()
  2716  }
  2717  
  2718  func Aws_cryptography_materialProviders_ValidateCommitmentPolicyOnEncryptInput_commitmentPolicy_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicy) AwsCryptographyMaterialProvidersTypes.CommitmentPolicy {
  2719  	return func() AwsCryptographyMaterialProvidersTypes.CommitmentPolicy {
  2720  
  2721  		switch input.(type) {
  2722  		case *awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberESDK:
  2723  			var inputToConversion = Aws_cryptography_materialProviders_CommitmentPolicy_ESDK_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberESDK).Value)
  2724  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_CommitmentPolicy_{}.Create_ESDK_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy))
  2725  		case *awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberDBE:
  2726  			var inputToConversion = Aws_cryptography_materialProviders_CommitmentPolicy_DBE_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberDBE).Value)
  2727  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_CommitmentPolicy_{}.Create_DBE_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DBECommitmentPolicy))
  2728  
  2729  		default:
  2730  			panic("Unhandled union type")
  2731  		}
  2732  	}()
  2733  }
  2734  
  2735  func Aws_cryptography_materialProviders_ValidDecryptionMaterialsTransitionInput_start_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials) AwsCryptographyMaterialProvidersTypes.DecryptionMaterials {
  2736  	return func() AwsCryptographyMaterialProvidersTypes.DecryptionMaterials {
  2737  
  2738  		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))
  2739  	}()
  2740  }
  2741  
  2742  func Aws_cryptography_materialProviders_ValidDecryptionMaterialsTransitionInput_stop_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials) AwsCryptographyMaterialProvidersTypes.DecryptionMaterials {
  2743  	return func() AwsCryptographyMaterialProvidersTypes.DecryptionMaterials {
  2744  
  2745  		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))
  2746  	}()
  2747  }
  2748  
  2749  func Aws_cryptography_materialProviders_ValidEncryptionMaterialsTransitionInput_start_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials) AwsCryptographyMaterialProvidersTypes.EncryptionMaterials {
  2750  	return func() AwsCryptographyMaterialProvidersTypes.EncryptionMaterials {
  2751  
  2752  		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))
  2753  	}()
  2754  }
  2755  
  2756  func Aws_cryptography_materialProviders_ValidEncryptionMaterialsTransitionInput_stop_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials) AwsCryptographyMaterialProvidersTypes.EncryptionMaterials {
  2757  	return func() AwsCryptographyMaterialProvidersTypes.EncryptionMaterials {
  2758  
  2759  		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))
  2760  	}()
  2761  }
  2762  
  2763  func Aws_cryptography_materialProviders_GetBranchKeyIdInput_encryptionContext_ToDafny(input map[string]string) dafny.Map {
  2764  	return func() dafny.Map {
  2765  		fieldValue := dafny.NewMapBuilder()
  2766  		for key, val := range input {
  2767  			fieldValue.Add(Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val))
  2768  		}
  2769  		return fieldValue.ToMap()
  2770  	}()
  2771  }
  2772  
  2773  func Aws_cryptography_materialProviders_GetBranchKeyIdOutput_branchKeyId_ToDafny(input string) dafny.Sequence {
  2774  	return func() dafny.Sequence {
  2775  
  2776  		return func() dafny.Sequence {
  2777  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
  2778  			if err != nil {
  2779  				panic("invalid utf8 input provided")
  2780  			}
  2781  			return res
  2782  		}()
  2783  	}()
  2784  }
  2785  
  2786  func Aws_cryptography_materialProviders_GetClientInput_region_ToDafny(input string) dafny.Sequence {
  2787  	return func() dafny.Sequence {
  2788  
  2789  		return func() dafny.Sequence {
  2790  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
  2791  			if err != nil {
  2792  				panic("invalid utf8 input provided")
  2793  			}
  2794  			return res
  2795  		}()
  2796  	}()
  2797  }
  2798  
  2799  func Aws_cryptography_materialProviders_GetClientOutput_client_ToDafny(input *kms.Client) ComAmazonawsKmsTypes.IKMSClient {
  2800  	return &KMSwrapped.Shim{Client: input}
  2801  }
  2802  
  2803  func Aws_cryptography_materialProviders_DeleteCacheEntryInput_identifier_ToDafny(input []byte) dafny.Sequence {
  2804  	return func() dafny.Sequence {
  2805  		var v []interface{}
  2806  		if input == nil {
  2807  			return nil
  2808  		}
  2809  		for _, e := range input {
  2810  			v = append(v, e)
  2811  		}
  2812  		return dafny.SeqOf(v...)
  2813  	}()
  2814  }
  2815  
  2816  func Aws_cryptography_materialProviders_GetCacheEntryInput_identifier_ToDafny(input []byte) dafny.Sequence {
  2817  	return func() dafny.Sequence {
  2818  		var v []interface{}
  2819  		if input == nil {
  2820  			return nil
  2821  		}
  2822  		for _, e := range input {
  2823  			v = append(v, e)
  2824  		}
  2825  		return dafny.SeqOf(v...)
  2826  	}()
  2827  }
  2828  
  2829  func Aws_cryptography_materialProviders_GetCacheEntryInput_bytesUsed_ToDafny(input *int64) Wrappers.Option {
  2830  	return func() Wrappers.Option {
  2831  		if input == nil {
  2832  			return Wrappers.Companion_Option_.Create_None_()
  2833  		}
  2834  		return Wrappers.Companion_Option_.Create_Some_(*input)
  2835  	}()
  2836  }
  2837  
  2838  func Aws_cryptography_materialProviders_GetCacheEntryOutput_materials_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.Materials) AwsCryptographyMaterialProvidersTypes.Materials {
  2839  	return func() AwsCryptographyMaterialProvidersTypes.Materials {
  2840  
  2841  		switch input.(type) {
  2842  		case *awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberEncryption:
  2843  			var inputToConversion = Aws_cryptography_materialProviders_Materials_Encryption_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberEncryption).Value)
  2844  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_Materials_{}.Create_Encryption_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials))
  2845  		case *awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberDecryption:
  2846  			var inputToConversion = Aws_cryptography_materialProviders_Materials_Decryption_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberDecryption).Value)
  2847  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_Materials_{}.Create_Decryption_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials))
  2848  		case *awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBranchKey:
  2849  			var inputToConversion = Aws_cryptography_materialProviders_Materials_BranchKey_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBranchKey).Value)
  2850  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_Materials_{}.Create_BranchKey_(inputToConversion.UnwrapOr(nil).(AwsCryptographyKeyStoreTypes.BranchKeyMaterials))
  2851  		case *awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBeaconKey:
  2852  			var inputToConversion = Aws_cryptography_materialProviders_Materials_BeaconKey_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBeaconKey).Value)
  2853  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_Materials_{}.Create_BeaconKey_(inputToConversion.UnwrapOr(nil).(AwsCryptographyKeyStoreTypes.BeaconKeyMaterials))
  2854  
  2855  		default:
  2856  			panic("Unhandled union type")
  2857  		}
  2858  	}()
  2859  }
  2860  
  2861  func Aws_cryptography_materialProviders_Materials_Encryption_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials) Wrappers.Option {
  2862  	return func() Wrappers.Option {
  2863  
  2864  		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)))
  2865  	}()
  2866  }
  2867  
  2868  func Aws_cryptography_materialProviders_Materials_Decryption_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials) Wrappers.Option {
  2869  	return func() Wrappers.Option {
  2870  
  2871  		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)))
  2872  	}()
  2873  }
  2874  
  2875  func Aws_cryptography_materialProviders_Materials_BranchKey_ToDafny(input awscryptographykeystoresmithygeneratedtypes.BranchKeyMaterials) Wrappers.Option {
  2876  	return func() Wrappers.Option {
  2877  
  2878  		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)))
  2879  	}()
  2880  }
  2881  
  2882  func Aws_cryptography_materialProviders_Materials_BeaconKey_ToDafny(input awscryptographykeystoresmithygeneratedtypes.BeaconKeyMaterials) Wrappers.Option {
  2883  	return func() Wrappers.Option {
  2884  
  2885  		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)))
  2886  	}()
  2887  }
  2888  
  2889  func Aws_cryptography_materialProviders_GetCacheEntryOutput_creationTime_ToDafny(input int64) int64 {
  2890  	return func() int64 {
  2891  
  2892  		return input
  2893  	}()
  2894  }
  2895  
  2896  func Aws_cryptography_materialProviders_GetCacheEntryOutput_expiryTime_ToDafny(input int64) int64 {
  2897  	return func() int64 {
  2898  
  2899  		return input
  2900  	}()
  2901  }
  2902  
  2903  func Aws_cryptography_materialProviders_GetCacheEntryOutput_messagesUsed_ToDafny(input int32) int32 {
  2904  	return func() int32 {
  2905  
  2906  		return input
  2907  	}()
  2908  }
  2909  
  2910  func Aws_cryptography_materialProviders_GetCacheEntryOutput_bytesUsed_ToDafny(input int32) int32 {
  2911  	return func() int32 {
  2912  
  2913  		return input
  2914  	}()
  2915  }
  2916  
  2917  func Aws_cryptography_materialProviders_PutCacheEntryInput_identifier_ToDafny(input []byte) dafny.Sequence {
  2918  	return func() dafny.Sequence {
  2919  		var v []interface{}
  2920  		if input == nil {
  2921  			return nil
  2922  		}
  2923  		for _, e := range input {
  2924  			v = append(v, e)
  2925  		}
  2926  		return dafny.SeqOf(v...)
  2927  	}()
  2928  }
  2929  
  2930  func Aws_cryptography_materialProviders_PutCacheEntryInput_materials_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.Materials) AwsCryptographyMaterialProvidersTypes.Materials {
  2931  	return func() AwsCryptographyMaterialProvidersTypes.Materials {
  2932  
  2933  		switch input.(type) {
  2934  		case *awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberEncryption:
  2935  			var inputToConversion = Aws_cryptography_materialProviders_Materials_Encryption_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberEncryption).Value)
  2936  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_Materials_{}.Create_Encryption_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.EncryptionMaterials))
  2937  		case *awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberDecryption:
  2938  			var inputToConversion = Aws_cryptography_materialProviders_Materials_Decryption_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberDecryption).Value)
  2939  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_Materials_{}.Create_Decryption_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DecryptionMaterials))
  2940  		case *awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBranchKey:
  2941  			var inputToConversion = Aws_cryptography_materialProviders_Materials_BranchKey_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBranchKey).Value)
  2942  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_Materials_{}.Create_BranchKey_(inputToConversion.UnwrapOr(nil).(AwsCryptographyKeyStoreTypes.BranchKeyMaterials))
  2943  		case *awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBeaconKey:
  2944  			var inputToConversion = Aws_cryptography_materialProviders_Materials_BeaconKey_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.MaterialsMemberBeaconKey).Value)
  2945  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_Materials_{}.Create_BeaconKey_(inputToConversion.UnwrapOr(nil).(AwsCryptographyKeyStoreTypes.BeaconKeyMaterials))
  2946  
  2947  		default:
  2948  			panic("Unhandled union type")
  2949  		}
  2950  	}()
  2951  }
  2952  
  2953  func Aws_cryptography_materialProviders_PutCacheEntryInput_creationTime_ToDafny(input int64) int64 {
  2954  	return func() int64 {
  2955  
  2956  		return input
  2957  	}()
  2958  }
  2959  
  2960  func Aws_cryptography_materialProviders_PutCacheEntryInput_expiryTime_ToDafny(input int64) int64 {
  2961  	return func() int64 {
  2962  
  2963  		return input
  2964  	}()
  2965  }
  2966  
  2967  func Aws_cryptography_materialProviders_PutCacheEntryInput_messagesUsed_ToDafny(input *int32) Wrappers.Option {
  2968  	return func() Wrappers.Option {
  2969  		if input == nil {
  2970  			return Wrappers.Companion_Option_.Create_None_()
  2971  		}
  2972  		return Wrappers.Companion_Option_.Create_Some_(*input)
  2973  	}()
  2974  }
  2975  
  2976  func Aws_cryptography_materialProviders_PutCacheEntryInput_bytesUsed_ToDafny(input *int32) Wrappers.Option {
  2977  	return func() Wrappers.Option {
  2978  		if input == nil {
  2979  			return Wrappers.Companion_Option_.Create_None_()
  2980  		}
  2981  		return Wrappers.Companion_Option_.Create_Some_(*input)
  2982  	}()
  2983  }
  2984  
  2985  func Aws_cryptography_materialProviders_UpdateUsageMetadataInput_identifier_ToDafny(input []byte) dafny.Sequence {
  2986  	return func() dafny.Sequence {
  2987  		var v []interface{}
  2988  		if input == nil {
  2989  			return nil
  2990  		}
  2991  		for _, e := range input {
  2992  			v = append(v, e)
  2993  		}
  2994  		return dafny.SeqOf(v...)
  2995  	}()
  2996  }
  2997  
  2998  func Aws_cryptography_materialProviders_UpdateUsageMetadataInput_bytesUsed_ToDafny(input int32) int32 {
  2999  	return func() int32 {
  3000  
  3001  		return input
  3002  	}()
  3003  }
  3004  
  3005  func Aws_cryptography_materialProviders_DecryptMaterialsInput_algorithmSuiteId_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteId) AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId {
  3006  	return func() AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId {
  3007  
  3008  		switch input.(type) {
  3009  		case *awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK:
  3010  			var inputToConversion = Aws_cryptography_materialProviders_AlgorithmSuiteId_ESDK_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK).Value)
  3011  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_AlgorithmSuiteId_{}.Create_ESDK_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId))
  3012  		case *awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE:
  3013  			var inputToConversion = Aws_cryptography_materialProviders_AlgorithmSuiteId_DBE_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE).Value)
  3014  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_AlgorithmSuiteId_{}.Create_DBE_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId))
  3015  
  3016  		default:
  3017  			panic("Unhandled union type")
  3018  		}
  3019  	}()
  3020  }
  3021  
  3022  func Aws_cryptography_materialProviders_DecryptMaterialsInput_commitmentPolicy_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicy) AwsCryptographyMaterialProvidersTypes.CommitmentPolicy {
  3023  	return func() AwsCryptographyMaterialProvidersTypes.CommitmentPolicy {
  3024  
  3025  		switch input.(type) {
  3026  		case *awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberESDK:
  3027  			var inputToConversion = Aws_cryptography_materialProviders_CommitmentPolicy_ESDK_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberESDK).Value)
  3028  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_CommitmentPolicy_{}.Create_ESDK_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy))
  3029  		case *awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberDBE:
  3030  			var inputToConversion = Aws_cryptography_materialProviders_CommitmentPolicy_DBE_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberDBE).Value)
  3031  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_CommitmentPolicy_{}.Create_DBE_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DBECommitmentPolicy))
  3032  
  3033  		default:
  3034  			panic("Unhandled union type")
  3035  		}
  3036  	}()
  3037  }
  3038  
  3039  func Aws_cryptography_materialProviders_DecryptMaterialsInput_encryptedDataKeys_ToDafny(input []awscryptographymaterialproviderssmithygeneratedtypes.EncryptedDataKey) dafny.Sequence {
  3040  	return func() dafny.Sequence {
  3041  
  3042  		var fieldValue []interface{} = make([]interface{}, 0)
  3043  		for _, val := range input {
  3044  			element := Aws_cryptography_materialProviders_EncryptedDataKeyList_member_ToDafny(val)
  3045  			fieldValue = append(fieldValue, element)
  3046  		}
  3047  		return dafny.SeqOf(fieldValue...)
  3048  	}()
  3049  }
  3050  
  3051  func Aws_cryptography_materialProviders_DecryptMaterialsInput_encryptionContext_ToDafny(input map[string]string) dafny.Map {
  3052  	return func() dafny.Map {
  3053  		fieldValue := dafny.NewMapBuilder()
  3054  		for key, val := range input {
  3055  			fieldValue.Add(Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val))
  3056  		}
  3057  		return fieldValue.ToMap()
  3058  	}()
  3059  }
  3060  
  3061  func Aws_cryptography_materialProviders_DecryptMaterialsInput_reproducedEncryptionContext_ToDafny(input map[string]string) Wrappers.Option {
  3062  	return func() Wrappers.Option {
  3063  		fieldValue := dafny.NewMapBuilder()
  3064  		for key, val := range input {
  3065  			fieldValue.Add(Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val))
  3066  		}
  3067  		return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap())
  3068  	}()
  3069  }
  3070  
  3071  func Aws_cryptography_materialProviders_DecryptMaterialsOutput_decryptionMaterials_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials) AwsCryptographyMaterialProvidersTypes.DecryptionMaterials {
  3072  	return func() AwsCryptographyMaterialProvidersTypes.DecryptionMaterials {
  3073  
  3074  		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))
  3075  	}()
  3076  }
  3077  
  3078  func Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_encryptionContext_ToDafny(input map[string]string) dafny.Map {
  3079  	return func() dafny.Map {
  3080  		fieldValue := dafny.NewMapBuilder()
  3081  		for key, val := range input {
  3082  			fieldValue.Add(Aws_cryptography_materialProviders_EncryptionContext_key_ToDafny(key), Aws_cryptography_materialProviders_EncryptionContext_value_ToDafny(val))
  3083  		}
  3084  		return fieldValue.ToMap()
  3085  	}()
  3086  }
  3087  
  3088  func Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_commitmentPolicy_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicy) AwsCryptographyMaterialProvidersTypes.CommitmentPolicy {
  3089  	return func() AwsCryptographyMaterialProvidersTypes.CommitmentPolicy {
  3090  
  3091  		switch input.(type) {
  3092  		case *awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberESDK:
  3093  			var inputToConversion = Aws_cryptography_materialProviders_CommitmentPolicy_ESDK_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberESDK).Value)
  3094  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_CommitmentPolicy_{}.Create_ESDK_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy))
  3095  		case *awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberDBE:
  3096  			var inputToConversion = Aws_cryptography_materialProviders_CommitmentPolicy_DBE_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.CommitmentPolicyMemberDBE).Value)
  3097  			return AwsCryptographyMaterialProvidersTypes.CompanionStruct_CommitmentPolicy_{}.Create_DBE_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DBECommitmentPolicy))
  3098  
  3099  		default:
  3100  			panic("Unhandled union type")
  3101  		}
  3102  	}()
  3103  }
  3104  
  3105  func Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_algorithmSuiteId_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteId) Wrappers.Option {
  3106  	return func() Wrappers.Option {
  3107  		if input == nil {
  3108  			return Wrappers.Companion_Option_.Create_None_()
  3109  		}
  3110  		switch input.(type) {
  3111  		case *awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK:
  3112  			var inputToConversion = Aws_cryptography_materialProviders_AlgorithmSuiteId_ESDK_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberESDK).Value)
  3113  			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_AlgorithmSuiteId_{}.Create_ESDK_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId)))
  3114  		case *awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE:
  3115  			var inputToConversion = Aws_cryptography_materialProviders_AlgorithmSuiteId_DBE_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.AlgorithmSuiteIdMemberDBE).Value)
  3116  			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_AlgorithmSuiteId_{}.Create_DBE_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId)))
  3117  
  3118  		default:
  3119  			panic("Unhandled union type")
  3120  		}
  3121  	}()
  3122  }
  3123  
  3124  func Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_maxPlaintextLength_ToDafny(input *int64) Wrappers.Option {
  3125  	return func() Wrappers.Option {
  3126  		if input == nil {
  3127  			return Wrappers.Companion_Option_.Create_None_()
  3128  		}
  3129  		return Wrappers.Companion_Option_.Create_Some_(*input)
  3130  	}()
  3131  }
  3132  
  3133  func Aws_cryptography_materialProviders_GetEncryptionMaterialsInput_requiredEncryptionContextKeys_ToDafny(input []string) Wrappers.Option {
  3134  	return func() Wrappers.Option {
  3135  		if input == nil {
  3136  			return Wrappers.Companion_Option_.Create_None_()
  3137  		}
  3138  		var fieldValue []interface{} = make([]interface{}, 0)
  3139  		for _, val := range input {
  3140  			element := Aws_cryptography_materialProviders_EncryptionContextKeys_member_ToDafny(val)
  3141  			fieldValue = append(fieldValue, element)
  3142  		}
  3143  		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
  3144  	}()
  3145  }
  3146  
  3147  func Aws_cryptography_materialProviders_GetEncryptionMaterialsOutput_encryptionMaterials_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials) AwsCryptographyMaterialProvidersTypes.EncryptionMaterials {
  3148  	return func() AwsCryptographyMaterialProvidersTypes.EncryptionMaterials {
  3149  
  3150  		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))
  3151  	}()
  3152  }
  3153  
  3154  func Aws_cryptography_materialProviders_OnDecryptInput_materials_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials) AwsCryptographyMaterialProvidersTypes.DecryptionMaterials {
  3155  	return func() AwsCryptographyMaterialProvidersTypes.DecryptionMaterials {
  3156  
  3157  		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))
  3158  	}()
  3159  }
  3160  
  3161  func Aws_cryptography_materialProviders_OnDecryptInput_encryptedDataKeys_ToDafny(input []awscryptographymaterialproviderssmithygeneratedtypes.EncryptedDataKey) dafny.Sequence {
  3162  	return func() dafny.Sequence {
  3163  
  3164  		var fieldValue []interface{} = make([]interface{}, 0)
  3165  		for _, val := range input {
  3166  			element := Aws_cryptography_materialProviders_EncryptedDataKeyList_member_ToDafny(val)
  3167  			fieldValue = append(fieldValue, element)
  3168  		}
  3169  		return dafny.SeqOf(fieldValue...)
  3170  	}()
  3171  }
  3172  
  3173  func Aws_cryptography_materialProviders_OnDecryptOutput_materials_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.DecryptionMaterials) AwsCryptographyMaterialProvidersTypes.DecryptionMaterials {
  3174  	return func() AwsCryptographyMaterialProvidersTypes.DecryptionMaterials {
  3175  
  3176  		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))
  3177  	}()
  3178  }
  3179  
  3180  func Aws_cryptography_materialProviders_OnEncryptInput_materials_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials) AwsCryptographyMaterialProvidersTypes.EncryptionMaterials {
  3181  	return func() AwsCryptographyMaterialProvidersTypes.EncryptionMaterials {
  3182  
  3183  		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))
  3184  	}()
  3185  }
  3186  
  3187  func Aws_cryptography_materialProviders_OnEncryptOutput_materials_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.EncryptionMaterials) AwsCryptographyMaterialProvidersTypes.EncryptionMaterials {
  3188  	return func() AwsCryptographyMaterialProvidersTypes.EncryptionMaterials {
  3189  
  3190  		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))
  3191  	}()
  3192  }
  3193  
  3194  func Aws_cryptography_materialProviders_AwsCryptographicMaterialProvidersException_message_ToDafny(input string) dafny.Sequence {
  3195  	return func() dafny.Sequence {
  3196  
  3197  		return func() dafny.Sequence {
  3198  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
  3199  			if err != nil {
  3200  				panic("invalid utf8 input provided")
  3201  			}
  3202  			return res
  3203  		}()
  3204  	}()
  3205  }
  3206  
  3207  func Aws_cryptography_materialProviders_EntryAlreadyExists_message_ToDafny(input string) dafny.Sequence {
  3208  	return func() dafny.Sequence {
  3209  
  3210  		return func() dafny.Sequence {
  3211  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
  3212  			if err != nil {
  3213  				panic("invalid utf8 input provided")
  3214  			}
  3215  			return res
  3216  		}()
  3217  	}()
  3218  }
  3219  
  3220  func Aws_cryptography_materialProviders_EntryDoesNotExist_message_ToDafny(input string) dafny.Sequence {
  3221  	return func() dafny.Sequence {
  3222  
  3223  		return func() dafny.Sequence {
  3224  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
  3225  			if err != nil {
  3226  				panic("invalid utf8 input provided")
  3227  			}
  3228  			return res
  3229  		}()
  3230  	}()
  3231  }
  3232  
  3233  func Aws_cryptography_materialProviders_InFlightTTLExceeded_message_ToDafny(input string) dafny.Sequence {
  3234  	return func() dafny.Sequence {
  3235  
  3236  		return func() dafny.Sequence {
  3237  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
  3238  			if err != nil {
  3239  				panic("invalid utf8 input provided")
  3240  			}
  3241  			return res
  3242  		}()
  3243  	}()
  3244  }
  3245  
  3246  func Aws_cryptography_materialProviders_InvalidAlgorithmSuiteInfo_message_ToDafny(input string) dafny.Sequence {
  3247  	return func() dafny.Sequence {
  3248  
  3249  		return func() dafny.Sequence {
  3250  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
  3251  			if err != nil {
  3252  				panic("invalid utf8 input provided")
  3253  			}
  3254  			return res
  3255  		}()
  3256  	}()
  3257  }
  3258  
  3259  func Aws_cryptography_materialProviders_InvalidAlgorithmSuiteInfoOnDecrypt_message_ToDafny(input string) dafny.Sequence {
  3260  	return func() dafny.Sequence {
  3261  
  3262  		return func() dafny.Sequence {
  3263  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
  3264  			if err != nil {
  3265  				panic("invalid utf8 input provided")
  3266  			}
  3267  			return res
  3268  		}()
  3269  	}()
  3270  }
  3271  
  3272  func Aws_cryptography_materialProviders_InvalidAlgorithmSuiteInfoOnEncrypt_message_ToDafny(input string) dafny.Sequence {
  3273  	return func() dafny.Sequence {
  3274  
  3275  		return func() dafny.Sequence {
  3276  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
  3277  			if err != nil {
  3278  				panic("invalid utf8 input provided")
  3279  			}
  3280  			return res
  3281  		}()
  3282  	}()
  3283  }
  3284  
  3285  func Aws_cryptography_materialProviders_InvalidDecryptionMaterials_message_ToDafny(input string) dafny.Sequence {
  3286  	return func() dafny.Sequence {
  3287  
  3288  		return func() dafny.Sequence {
  3289  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
  3290  			if err != nil {
  3291  				panic("invalid utf8 input provided")
  3292  			}
  3293  			return res
  3294  		}()
  3295  	}()
  3296  }
  3297  
  3298  func Aws_cryptography_materialProviders_InvalidDecryptionMaterialsTransition_message_ToDafny(input string) dafny.Sequence {
  3299  	return func() dafny.Sequence {
  3300  
  3301  		return func() dafny.Sequence {
  3302  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
  3303  			if err != nil {
  3304  				panic("invalid utf8 input provided")
  3305  			}
  3306  			return res
  3307  		}()
  3308  	}()
  3309  }
  3310  
  3311  func Aws_cryptography_materialProviders_InvalidEncryptionMaterials_message_ToDafny(input string) dafny.Sequence {
  3312  	return func() dafny.Sequence {
  3313  
  3314  		return func() dafny.Sequence {
  3315  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
  3316  			if err != nil {
  3317  				panic("invalid utf8 input provided")
  3318  			}
  3319  			return res
  3320  		}()
  3321  	}()
  3322  }
  3323  
  3324  func Aws_cryptography_materialProviders_InvalidEncryptionMaterialsTransition_message_ToDafny(input string) dafny.Sequence {
  3325  	return func() dafny.Sequence {
  3326  
  3327  		return func() dafny.Sequence {
  3328  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
  3329  			if err != nil {
  3330  				panic("invalid utf8 input provided")
  3331  			}
  3332  			return res
  3333  		}()
  3334  	}()
  3335  }
  3336  
  3337  func Aws_cryptography_materialProviders_StaticConfigurations_AWS_KMS_ECDH_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.KmsEcdhStaticConfigurations) Wrappers.Option {
  3338  	return func() Wrappers.Option {
  3339  		if input == nil {
  3340  			return Wrappers.Companion_Option_.Create_None_()
  3341  		}
  3342  		switch input.(type) {
  3343  		case *awscryptographymaterialproviderssmithygeneratedtypes.KmsEcdhStaticConfigurationsMemberKmsPublicKeyDiscovery:
  3344  			var inputToConversion = Aws_cryptography_materialProviders_KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.KmsEcdhStaticConfigurationsMemberKmsPublicKeyDiscovery).Value)
  3345  			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_KmsEcdhStaticConfigurations_{}.Create_KmsPublicKeyDiscovery_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.KmsPublicKeyDiscoveryInput)))
  3346  		case *awscryptographymaterialproviderssmithygeneratedtypes.KmsEcdhStaticConfigurationsMemberKmsPrivateKeyToStaticPublicKey:
  3347  			var inputToConversion = Aws_cryptography_materialProviders_KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.KmsEcdhStaticConfigurationsMemberKmsPrivateKeyToStaticPublicKey).Value)
  3348  			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_KmsEcdhStaticConfigurations_{}.Create_KmsPrivateKeyToStaticPublicKey_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.KmsPrivateKeyToStaticPublicKeyInput)))
  3349  
  3350  		default:
  3351  			panic("Unhandled union type")
  3352  		}
  3353  	}()
  3354  }
  3355  
  3356  func Aws_cryptography_materialProviders_StaticConfigurations_RAW_ECDH_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurations) Wrappers.Option {
  3357  	return func() Wrappers.Option {
  3358  		if input == nil {
  3359  			return Wrappers.Companion_Option_.Create_None_()
  3360  		}
  3361  		switch input.(type) {
  3362  		case *awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberPublicKeyDiscovery:
  3363  			var inputToConversion = Aws_cryptography_materialProviders_RawEcdhStaticConfigurations_PublicKeyDiscovery_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberPublicKeyDiscovery).Value)
  3364  			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_RawEcdhStaticConfigurations_{}.Create_PublicKeyDiscovery_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.PublicKeyDiscoveryInput)))
  3365  		case *awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberRawPrivateKeyToStaticPublicKey:
  3366  			var inputToConversion = Aws_cryptography_materialProviders_RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberRawPrivateKeyToStaticPublicKey).Value)
  3367  			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_RawEcdhStaticConfigurations_{}.Create_RawPrivateKeyToStaticPublicKey_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.RawPrivateKeyToStaticPublicKeyInput)))
  3368  		case *awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberEphemeralPrivateKeyToStaticPublicKey:
  3369  			var inputToConversion = Aws_cryptography_materialProviders_RawEcdhStaticConfigurations_EphemeralPrivateKeyToStaticPublicKey_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.RawEcdhStaticConfigurationsMemberEphemeralPrivateKeyToStaticPublicKey).Value)
  3370  			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_RawEcdhStaticConfigurations_{}.Create_EphemeralPrivateKeyToStaticPublicKey_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.EphemeralPrivateKeyToStaticPublicKeyInput)))
  3371  
  3372  		default:
  3373  			panic("Unhandled union type")
  3374  		}
  3375  	}()
  3376  }
  3377  
  3378  func Aws_cryptography_materialProviders_KeyAgreementScheme_StaticConfiguration_ToDafny(input awscryptographymaterialproviderssmithygeneratedtypes.StaticConfigurations) Wrappers.Option {
  3379  	return func() Wrappers.Option {
  3380  		if input == nil {
  3381  			return Wrappers.Companion_Option_.Create_None_()
  3382  		}
  3383  		switch input.(type) {
  3384  		case *awscryptographymaterialproviderssmithygeneratedtypes.StaticConfigurationsMemberAWS_KMS_ECDH:
  3385  			var inputToConversion = Aws_cryptography_materialProviders_StaticConfigurations_AWS_KMS_ECDH_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.StaticConfigurationsMemberAWS_KMS_ECDH).Value)
  3386  			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_StaticConfigurations_{}.Create_AWS__KMS__ECDH_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations)))
  3387  		case *awscryptographymaterialproviderssmithygeneratedtypes.StaticConfigurationsMemberRAW_ECDH:
  3388  			var inputToConversion = Aws_cryptography_materialProviders_StaticConfigurations_RAW_ECDH_ToDafny(input.(*awscryptographymaterialproviderssmithygeneratedtypes.StaticConfigurationsMemberRAW_ECDH).Value)
  3389  			return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyMaterialProvidersTypes.CompanionStruct_StaticConfigurations_{}.Create_RAW__ECDH_(inputToConversion.UnwrapOr(nil).(AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations)))
  3390  
  3391  		default:
  3392  			panic("Unhandled union type")
  3393  		}
  3394  	}()
  3395  }