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

     1  // Code generated by smithy-go-codegen DO NOT EDIT.
     2  
     3  package awscryptographykeystoresmithygenerated
     4  
     5  import (
     6  	"unicode/utf8"
     7  
     8  	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/DynamoDBwrapped"
     9  	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/comamazonawsdynamodbsmithygenerated"
    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/awscryptographykeystoresmithygeneratedtypes"
    14  	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8"
    15  	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
    16  	"github.com/aws/aws-sdk-go-v2/service/dynamodb"
    17  	"github.com/aws/aws-sdk-go-v2/service/kms"
    18  	"github.com/aws/smithy-go"
    19  	"github.com/dafny-lang/DafnyRuntimeGo/v4/dafny"
    20  )
    21  
    22  func CreateKeyInput_ToDafny(nativeInput awscryptographykeystoresmithygeneratedtypes.CreateKeyInput) AwsCryptographyKeyStoreTypes.CreateKeyInput {
    23  
    24  	return func() AwsCryptographyKeyStoreTypes.CreateKeyInput {
    25  
    26  		return AwsCryptographyKeyStoreTypes.Companion_CreateKeyInput_.Create_CreateKeyInput_(Aws_cryptography_keyStore_CreateKeyInput_branchKeyIdentifier_ToDafny(nativeInput.BranchKeyIdentifier), Aws_cryptography_keyStore_CreateKeyInput_encryptionContext_ToDafny(nativeInput.EncryptionContext))
    27  	}()
    28  
    29  }
    30  
    31  func CreateKeyOutput_ToDafny(nativeOutput awscryptographykeystoresmithygeneratedtypes.CreateKeyOutput) AwsCryptographyKeyStoreTypes.CreateKeyOutput {
    32  
    33  	return func() AwsCryptographyKeyStoreTypes.CreateKeyOutput {
    34  
    35  		return AwsCryptographyKeyStoreTypes.Companion_CreateKeyOutput_.Create_CreateKeyOutput_(Aws_cryptography_keyStore_CreateKeyOutput_branchKeyIdentifier_ToDafny(nativeOutput.BranchKeyIdentifier))
    36  	}()
    37  
    38  }
    39  
    40  func CreateKeyStoreInput_ToDafny(nativeInput awscryptographykeystoresmithygeneratedtypes.CreateKeyStoreInput) AwsCryptographyKeyStoreTypes.CreateKeyStoreInput {
    41  
    42  	return func() AwsCryptographyKeyStoreTypes.CreateKeyStoreInput {
    43  
    44  		return AwsCryptographyKeyStoreTypes.Companion_CreateKeyStoreInput_.Create_CreateKeyStoreInput_()
    45  	}()
    46  
    47  }
    48  
    49  func CreateKeyStoreOutput_ToDafny(nativeOutput awscryptographykeystoresmithygeneratedtypes.CreateKeyStoreOutput) AwsCryptographyKeyStoreTypes.CreateKeyStoreOutput {
    50  
    51  	return func() AwsCryptographyKeyStoreTypes.CreateKeyStoreOutput {
    52  
    53  		return AwsCryptographyKeyStoreTypes.Companion_CreateKeyStoreOutput_.Create_CreateKeyStoreOutput_(Aws_cryptography_keyStore_CreateKeyStoreOutput_tableArn_ToDafny(nativeOutput.TableArn))
    54  	}()
    55  
    56  }
    57  
    58  func GetActiveBranchKeyInput_ToDafny(nativeInput awscryptographykeystoresmithygeneratedtypes.GetActiveBranchKeyInput) AwsCryptographyKeyStoreTypes.GetActiveBranchKeyInput {
    59  
    60  	return func() AwsCryptographyKeyStoreTypes.GetActiveBranchKeyInput {
    61  
    62  		return AwsCryptographyKeyStoreTypes.Companion_GetActiveBranchKeyInput_.Create_GetActiveBranchKeyInput_(Aws_cryptography_keyStore_GetActiveBranchKeyInput_branchKeyIdentifier_ToDafny(nativeInput.BranchKeyIdentifier))
    63  	}()
    64  
    65  }
    66  
    67  func GetActiveBranchKeyOutput_ToDafny(nativeOutput awscryptographykeystoresmithygeneratedtypes.GetActiveBranchKeyOutput) AwsCryptographyKeyStoreTypes.GetActiveBranchKeyOutput {
    68  
    69  	return func() AwsCryptographyKeyStoreTypes.GetActiveBranchKeyOutput {
    70  
    71  		return AwsCryptographyKeyStoreTypes.Companion_GetActiveBranchKeyOutput_.Create_GetActiveBranchKeyOutput_(Aws_cryptography_keyStore_GetActiveBranchKeyOutput_branchKeyMaterials_ToDafny(nativeOutput.BranchKeyMaterials))
    72  	}()
    73  
    74  }
    75  
    76  func GetBeaconKeyInput_ToDafny(nativeInput awscryptographykeystoresmithygeneratedtypes.GetBeaconKeyInput) AwsCryptographyKeyStoreTypes.GetBeaconKeyInput {
    77  
    78  	return func() AwsCryptographyKeyStoreTypes.GetBeaconKeyInput {
    79  
    80  		return AwsCryptographyKeyStoreTypes.Companion_GetBeaconKeyInput_.Create_GetBeaconKeyInput_(Aws_cryptography_keyStore_GetBeaconKeyInput_branchKeyIdentifier_ToDafny(nativeInput.BranchKeyIdentifier))
    81  	}()
    82  
    83  }
    84  
    85  func GetBeaconKeyOutput_ToDafny(nativeOutput awscryptographykeystoresmithygeneratedtypes.GetBeaconKeyOutput) AwsCryptographyKeyStoreTypes.GetBeaconKeyOutput {
    86  
    87  	return func() AwsCryptographyKeyStoreTypes.GetBeaconKeyOutput {
    88  
    89  		return AwsCryptographyKeyStoreTypes.Companion_GetBeaconKeyOutput_.Create_GetBeaconKeyOutput_(Aws_cryptography_keyStore_GetBeaconKeyOutput_beaconKeyMaterials_ToDafny(nativeOutput.BeaconKeyMaterials))
    90  	}()
    91  
    92  }
    93  
    94  func GetBranchKeyVersionInput_ToDafny(nativeInput awscryptographykeystoresmithygeneratedtypes.GetBranchKeyVersionInput) AwsCryptographyKeyStoreTypes.GetBranchKeyVersionInput {
    95  
    96  	return func() AwsCryptographyKeyStoreTypes.GetBranchKeyVersionInput {
    97  
    98  		return AwsCryptographyKeyStoreTypes.Companion_GetBranchKeyVersionInput_.Create_GetBranchKeyVersionInput_(Aws_cryptography_keyStore_GetBranchKeyVersionInput_branchKeyIdentifier_ToDafny(nativeInput.BranchKeyIdentifier), Aws_cryptography_keyStore_GetBranchKeyVersionInput_branchKeyVersion_ToDafny(nativeInput.BranchKeyVersion))
    99  	}()
   100  
   101  }
   102  
   103  func GetBranchKeyVersionOutput_ToDafny(nativeOutput awscryptographykeystoresmithygeneratedtypes.GetBranchKeyVersionOutput) AwsCryptographyKeyStoreTypes.GetBranchKeyVersionOutput {
   104  
   105  	return func() AwsCryptographyKeyStoreTypes.GetBranchKeyVersionOutput {
   106  
   107  		return AwsCryptographyKeyStoreTypes.Companion_GetBranchKeyVersionOutput_.Create_GetBranchKeyVersionOutput_(Aws_cryptography_keyStore_GetBranchKeyVersionOutput_branchKeyMaterials_ToDafny(nativeOutput.BranchKeyMaterials))
   108  	}()
   109  
   110  }
   111  
   112  func GetKeyStoreInfoOutput_ToDafny(nativeOutput awscryptographykeystoresmithygeneratedtypes.GetKeyStoreInfoOutput) AwsCryptographyKeyStoreTypes.GetKeyStoreInfoOutput {
   113  
   114  	return func() AwsCryptographyKeyStoreTypes.GetKeyStoreInfoOutput {
   115  
   116  		return AwsCryptographyKeyStoreTypes.Companion_GetKeyStoreInfoOutput_.Create_GetKeyStoreInfoOutput_(Aws_cryptography_keyStore_GetKeyStoreInfoOutput_keyStoreId_ToDafny(nativeOutput.KeyStoreId), Aws_cryptography_keyStore_GetKeyStoreInfoOutput_keyStoreName_ToDafny(nativeOutput.KeyStoreName), Aws_cryptography_keyStore_GetKeyStoreInfoOutput_logicalKeyStoreName_ToDafny(nativeOutput.LogicalKeyStoreName), Aws_cryptography_keyStore_GetKeyStoreInfoOutput_grantTokens_ToDafny(nativeOutput.GrantTokens), Aws_cryptography_keyStore_GetKeyStoreInfoOutput_kmsConfiguration_ToDafny(nativeOutput.KmsConfiguration))
   117  	}()
   118  
   119  }
   120  
   121  func VersionKeyInput_ToDafny(nativeInput awscryptographykeystoresmithygeneratedtypes.VersionKeyInput) AwsCryptographyKeyStoreTypes.VersionKeyInput {
   122  
   123  	return func() AwsCryptographyKeyStoreTypes.VersionKeyInput {
   124  
   125  		return AwsCryptographyKeyStoreTypes.Companion_VersionKeyInput_.Create_VersionKeyInput_(Aws_cryptography_keyStore_VersionKeyInput_branchKeyIdentifier_ToDafny(nativeInput.BranchKeyIdentifier))
   126  	}()
   127  
   128  }
   129  
   130  func VersionKeyOutput_ToDafny(nativeOutput awscryptographykeystoresmithygeneratedtypes.VersionKeyOutput) AwsCryptographyKeyStoreTypes.VersionKeyOutput {
   131  
   132  	return func() AwsCryptographyKeyStoreTypes.VersionKeyOutput {
   133  
   134  		return AwsCryptographyKeyStoreTypes.Companion_VersionKeyOutput_.Create_VersionKeyOutput_()
   135  	}()
   136  
   137  }
   138  
   139  func KeyStoreException_ToDafny(nativeInput awscryptographykeystoresmithygeneratedtypes.KeyStoreException) AwsCryptographyKeyStoreTypes.Error {
   140  	return func() AwsCryptographyKeyStoreTypes.Error {
   141  
   142  		return AwsCryptographyKeyStoreTypes.Companion_Error_.Create_KeyStoreException_(Aws_cryptography_keyStore_KeyStoreException_message_ToDafny(nativeInput.Message))
   143  	}()
   144  
   145  }
   146  
   147  func CollectionOfErrors_Input_ToDafny(nativeInput awscryptographykeystoresmithygeneratedtypes.CollectionOfErrors) AwsCryptographyKeyStoreTypes.Error {
   148  	var e []interface{}
   149  	for _, i2 := range nativeInput.ListOfErrors {
   150  		e = append(e, Error_ToDafny(i2))
   151  	}
   152  	return AwsCryptographyKeyStoreTypes.Companion_Error_.Create_CollectionOfErrors_(dafny.SeqOf(e...), func() dafny.Sequence {
   153  		res, err := UTF8.DecodeFromNativeGoByteArray([]byte(nativeInput.Message))
   154  		if err != nil {
   155  			panic("invalid utf8 input provided")
   156  		}
   157  		return res
   158  	}())
   159  }
   160  func OpaqueError_Input_ToDafny(nativeInput awscryptographykeystoresmithygeneratedtypes.OpaqueError) AwsCryptographyKeyStoreTypes.Error {
   161  	return AwsCryptographyKeyStoreTypes.Companion_Error_.Create_Opaque_(nativeInput.ErrObject)
   162  }
   163  
   164  func Error_ToDafny(err error) AwsCryptographyKeyStoreTypes.Error {
   165  	switch err.(type) {
   166  	// Service Errors
   167  	case awscryptographykeystoresmithygeneratedtypes.KeyStoreException:
   168  		return KeyStoreException_ToDafny(err.(awscryptographykeystoresmithygeneratedtypes.KeyStoreException))
   169  
   170  	//DependentErrors
   171  	case *smithy.OperationError:
   172  		if err.(*smithy.OperationError).Service() == "DynamoDB" {
   173  			DynamoDBError := comamazonawsdynamodbsmithygenerated.Error_ToDafny(err)
   174  			return AwsCryptographyKeyStoreTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(DynamoDBError)
   175  		}
   176  		if err.(*smithy.OperationError).Service() == "KMS" {
   177  			KMSError := comamazonawskmssmithygenerated.Error_ToDafny(err)
   178  			return AwsCryptographyKeyStoreTypes.Companion_Error_.Create_ComAmazonawsKms_(KMSError)
   179  		}
   180  		return AwsCryptographyKeyStoreTypes.Companion_Error_.Create_Opaque_(err)
   181  
   182  	case smithy.APIError:
   183  		DynamoDBError := comamazonawsdynamodbsmithygenerated.Error_ToDafny(err)
   184  		if !DynamoDBError.Is_OpaqueWithText() {
   185  			return AwsCryptographyKeyStoreTypes.Companion_Error_.Create_ComAmazonawsDynamodb_(DynamoDBError)
   186  		}
   187  		KMSError := comamazonawskmssmithygenerated.Error_ToDafny(err)
   188  		if !KMSError.Is_OpaqueWithText() {
   189  			return AwsCryptographyKeyStoreTypes.Companion_Error_.Create_ComAmazonawsKms_(KMSError)
   190  		}
   191  		return AwsCryptographyKeyStoreTypes.Companion_Error_.Create_Opaque_(err)
   192  
   193  	//Unmodelled Errors
   194  	case awscryptographykeystoresmithygeneratedtypes.CollectionOfErrors:
   195  		return CollectionOfErrors_Input_ToDafny(err.(awscryptographykeystoresmithygeneratedtypes.CollectionOfErrors))
   196  
   197  	default:
   198  		error, ok := err.(awscryptographykeystoresmithygeneratedtypes.OpaqueError)
   199  		if !ok {
   200  			panic("Error is not an OpaqueError")
   201  		}
   202  		return OpaqueError_Input_ToDafny(error)
   203  	}
   204  }
   205  
   206  func KeyStoreConfig_ToDafny(nativeInput awscryptographykeystoresmithygeneratedtypes.KeyStoreConfig) AwsCryptographyKeyStoreTypes.KeyStoreConfig {
   207  	return func() AwsCryptographyKeyStoreTypes.KeyStoreConfig {
   208  
   209  		return AwsCryptographyKeyStoreTypes.Companion_KeyStoreConfig_.Create_KeyStoreConfig_(Aws_cryptography_keyStore_KeyStoreConfig_ddbTableName_ToDafny(nativeInput.DdbTableName), Aws_cryptography_keyStore_KeyStoreConfig_kmsConfiguration_ToDafny(nativeInput.KmsConfiguration), Aws_cryptography_keyStore_KeyStoreConfig_logicalKeyStoreName_ToDafny(nativeInput.LogicalKeyStoreName), Aws_cryptography_keyStore_KeyStoreConfig_id_ToDafny(nativeInput.Id), Aws_cryptography_keyStore_KeyStoreConfig_grantTokens_ToDafny(nativeInput.GrantTokens), Aws_cryptography_keyStore_KeyStoreConfig_ddbClient_ToDafny(nativeInput.DdbClient), Aws_cryptography_keyStore_KeyStoreConfig_kmsClient_ToDafny(nativeInput.KmsClient))
   210  	}()
   211  
   212  }
   213  
   214  func Aws_cryptography_keyStore_CreateKeyInput_branchKeyIdentifier_ToDafny(input *string) Wrappers.Option {
   215  	return func() Wrappers.Option {
   216  		if input == nil {
   217  			return Wrappers.Companion_Option_.Create_None_()
   218  		}
   219  		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
   220  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input))
   221  			if err != nil {
   222  				panic("invalid utf8 input provided")
   223  			}
   224  			return res
   225  		}())
   226  	}()
   227  }
   228  
   229  func Aws_cryptography_keyStore_CreateKeyInput_encryptionContext_ToDafny(input map[string]string) Wrappers.Option {
   230  	return func() Wrappers.Option {
   231  		fieldValue := dafny.NewMapBuilder()
   232  		for key, val := range input {
   233  			fieldValue.Add(Aws_cryptography_keyStore_EncryptionContext_key_ToDafny(key), Aws_cryptography_keyStore_EncryptionContext_value_ToDafny(val))
   234  		}
   235  		return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap())
   236  	}()
   237  }
   238  
   239  func Aws_cryptography_keyStore_EncryptionContext_key_ToDafny(input string) dafny.Sequence {
   240  	return func() dafny.Sequence {
   241  
   242  		return dafny.SeqOf(func() []interface{} {
   243  			if !utf8.ValidString(input) {
   244  				panic("invalid utf8 input provided")
   245  			}
   246  			b := []byte(input)
   247  			f := make([]interface{}, len(b))
   248  			for i, v := range b {
   249  				f[i] = v
   250  			}
   251  			return f
   252  		}()...)
   253  	}()
   254  }
   255  
   256  func Aws_cryptography_keyStore_EncryptionContext_value_ToDafny(input string) dafny.Sequence {
   257  	return func() dafny.Sequence {
   258  
   259  		return dafny.SeqOf(func() []interface{} {
   260  			if !utf8.ValidString(input) {
   261  				panic("invalid utf8 input provided")
   262  			}
   263  			b := []byte(input)
   264  			f := make([]interface{}, len(b))
   265  			for i, v := range b {
   266  				f[i] = v
   267  			}
   268  			return f
   269  		}()...)
   270  	}()
   271  }
   272  
   273  func Aws_cryptography_keyStore_CreateKeyOutput_branchKeyIdentifier_ToDafny(input string) dafny.Sequence {
   274  	return func() dafny.Sequence {
   275  
   276  		return func() dafny.Sequence {
   277  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
   278  			if err != nil {
   279  				panic("invalid utf8 input provided")
   280  			}
   281  			return res
   282  		}()
   283  	}()
   284  }
   285  
   286  func Aws_cryptography_keyStore_CreateKeyStoreOutput_tableArn_ToDafny(input string) dafny.Sequence {
   287  	return func() dafny.Sequence {
   288  
   289  		return func() dafny.Sequence {
   290  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
   291  			if err != nil {
   292  				panic("invalid utf8 input provided")
   293  			}
   294  			return res
   295  		}()
   296  	}()
   297  }
   298  
   299  func Aws_cryptography_keyStore_GetActiveBranchKeyInput_branchKeyIdentifier_ToDafny(input string) dafny.Sequence {
   300  	return func() dafny.Sequence {
   301  
   302  		return func() dafny.Sequence {
   303  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
   304  			if err != nil {
   305  				panic("invalid utf8 input provided")
   306  			}
   307  			return res
   308  		}()
   309  	}()
   310  }
   311  
   312  func Aws_cryptography_keyStore_GetActiveBranchKeyOutput_branchKeyMaterials_ToDafny(input awscryptographykeystoresmithygeneratedtypes.BranchKeyMaterials) AwsCryptographyKeyStoreTypes.BranchKeyMaterials {
   313  	return func() AwsCryptographyKeyStoreTypes.BranchKeyMaterials {
   314  
   315  		return AwsCryptographyKeyStoreTypes.Companion_BranchKeyMaterials_.Create_BranchKeyMaterials_(Aws_cryptography_keyStore_BranchKeyMaterials_branchKeyIdentifier_ToDafny(input.BranchKeyIdentifier), Aws_cryptography_keyStore_BranchKeyMaterials_branchKeyVersion_ToDafny(input.BranchKeyVersion), Aws_cryptography_keyStore_BranchKeyMaterials_encryptionContext_ToDafny(input.EncryptionContext), Aws_cryptography_keyStore_BranchKeyMaterials_branchKey_ToDafny(input.BranchKey))
   316  	}()
   317  }
   318  
   319  func Aws_cryptography_keyStore_BranchKeyMaterials_branchKeyIdentifier_ToDafny(input string) dafny.Sequence {
   320  	return func() dafny.Sequence {
   321  
   322  		return func() dafny.Sequence {
   323  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
   324  			if err != nil {
   325  				panic("invalid utf8 input provided")
   326  			}
   327  			return res
   328  		}()
   329  	}()
   330  }
   331  
   332  func Aws_cryptography_keyStore_BranchKeyMaterials_branchKeyVersion_ToDafny(input string) dafny.Sequence {
   333  	return func() dafny.Sequence {
   334  
   335  		return dafny.SeqOf(func() []interface{} {
   336  			if !utf8.ValidString(input) {
   337  				panic("invalid utf8 input provided")
   338  			}
   339  			b := []byte(input)
   340  			f := make([]interface{}, len(b))
   341  			for i, v := range b {
   342  				f[i] = v
   343  			}
   344  			return f
   345  		}()...)
   346  	}()
   347  }
   348  
   349  func Aws_cryptography_keyStore_BranchKeyMaterials_encryptionContext_ToDafny(input map[string]string) dafny.Map {
   350  	return func() dafny.Map {
   351  		fieldValue := dafny.NewMapBuilder()
   352  		for key, val := range input {
   353  			fieldValue.Add(Aws_cryptography_keyStore_EncryptionContext_key_ToDafny(key), Aws_cryptography_keyStore_EncryptionContext_value_ToDafny(val))
   354  		}
   355  		return fieldValue.ToMap()
   356  	}()
   357  }
   358  
   359  func Aws_cryptography_keyStore_BranchKeyMaterials_branchKey_ToDafny(input []byte) dafny.Sequence {
   360  	return func() dafny.Sequence {
   361  		var v []interface{}
   362  		if input == nil {
   363  			return nil
   364  		}
   365  		for _, e := range input {
   366  			v = append(v, e)
   367  		}
   368  		return dafny.SeqOf(v...)
   369  	}()
   370  }
   371  
   372  func Aws_cryptography_keyStore_GetBeaconKeyInput_branchKeyIdentifier_ToDafny(input string) dafny.Sequence {
   373  	return func() dafny.Sequence {
   374  
   375  		return func() dafny.Sequence {
   376  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
   377  			if err != nil {
   378  				panic("invalid utf8 input provided")
   379  			}
   380  			return res
   381  		}()
   382  	}()
   383  }
   384  
   385  func Aws_cryptography_keyStore_GetBeaconKeyOutput_beaconKeyMaterials_ToDafny(input awscryptographykeystoresmithygeneratedtypes.BeaconKeyMaterials) AwsCryptographyKeyStoreTypes.BeaconKeyMaterials {
   386  	return func() AwsCryptographyKeyStoreTypes.BeaconKeyMaterials {
   387  
   388  		return AwsCryptographyKeyStoreTypes.Companion_BeaconKeyMaterials_.Create_BeaconKeyMaterials_(Aws_cryptography_keyStore_BeaconKeyMaterials_beaconKeyIdentifier_ToDafny(input.BeaconKeyIdentifier), Aws_cryptography_keyStore_BeaconKeyMaterials_encryptionContext_ToDafny(input.EncryptionContext), Aws_cryptography_keyStore_BeaconKeyMaterials_beaconKey_ToDafny(input.BeaconKey), Aws_cryptography_keyStore_BeaconKeyMaterials_hmacKeys_ToDafny(input.HmacKeys))
   389  	}()
   390  }
   391  
   392  func Aws_cryptography_keyStore_BeaconKeyMaterials_beaconKeyIdentifier_ToDafny(input string) dafny.Sequence {
   393  	return func() dafny.Sequence {
   394  
   395  		return func() dafny.Sequence {
   396  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
   397  			if err != nil {
   398  				panic("invalid utf8 input provided")
   399  			}
   400  			return res
   401  		}()
   402  	}()
   403  }
   404  
   405  func Aws_cryptography_keyStore_BeaconKeyMaterials_encryptionContext_ToDafny(input map[string]string) dafny.Map {
   406  	return func() dafny.Map {
   407  		fieldValue := dafny.NewMapBuilder()
   408  		for key, val := range input {
   409  			fieldValue.Add(Aws_cryptography_keyStore_EncryptionContext_key_ToDafny(key), Aws_cryptography_keyStore_EncryptionContext_value_ToDafny(val))
   410  		}
   411  		return fieldValue.ToMap()
   412  	}()
   413  }
   414  
   415  func Aws_cryptography_keyStore_BeaconKeyMaterials_beaconKey_ToDafny(input []byte) Wrappers.Option {
   416  	return func() Wrappers.Option {
   417  		var v []interface{}
   418  		if input == nil {
   419  			return Wrappers.Companion_Option_.Create_None_()
   420  		}
   421  		for _, e := range input {
   422  			v = append(v, e)
   423  		}
   424  		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(v...))
   425  	}()
   426  }
   427  
   428  func Aws_cryptography_keyStore_BeaconKeyMaterials_hmacKeys_ToDafny(input map[string][]byte) Wrappers.Option {
   429  	return func() Wrappers.Option {
   430  		fieldValue := dafny.NewMapBuilder()
   431  		for key, val := range input {
   432  			fieldValue.Add(Aws_cryptography_keyStore_HmacKeyMap_key_ToDafny(key), Aws_cryptography_keyStore_HmacKeyMap_value_ToDafny(val))
   433  		}
   434  		return Wrappers.Companion_Option_.Create_Some_(fieldValue.ToMap())
   435  	}()
   436  }
   437  
   438  func Aws_cryptography_keyStore_HmacKeyMap_key_ToDafny(input string) dafny.Sequence {
   439  	return func() dafny.Sequence {
   440  
   441  		return func() dafny.Sequence {
   442  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
   443  			if err != nil {
   444  				panic("invalid utf8 input provided")
   445  			}
   446  			return res
   447  		}()
   448  	}()
   449  }
   450  
   451  func Aws_cryptography_keyStore_HmacKeyMap_value_ToDafny(input []byte) dafny.Sequence {
   452  	return func() dafny.Sequence {
   453  		var v []interface{}
   454  		if input == nil {
   455  			return nil
   456  		}
   457  		for _, e := range input {
   458  			v = append(v, e)
   459  		}
   460  		return dafny.SeqOf(v...)
   461  	}()
   462  }
   463  
   464  func Aws_cryptography_keyStore_GetBranchKeyVersionInput_branchKeyIdentifier_ToDafny(input string) dafny.Sequence {
   465  	return func() dafny.Sequence {
   466  
   467  		return func() dafny.Sequence {
   468  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
   469  			if err != nil {
   470  				panic("invalid utf8 input provided")
   471  			}
   472  			return res
   473  		}()
   474  	}()
   475  }
   476  
   477  func Aws_cryptography_keyStore_GetBranchKeyVersionInput_branchKeyVersion_ToDafny(input string) dafny.Sequence {
   478  	return func() dafny.Sequence {
   479  
   480  		return func() dafny.Sequence {
   481  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
   482  			if err != nil {
   483  				panic("invalid utf8 input provided")
   484  			}
   485  			return res
   486  		}()
   487  	}()
   488  }
   489  
   490  func Aws_cryptography_keyStore_GetBranchKeyVersionOutput_branchKeyMaterials_ToDafny(input awscryptographykeystoresmithygeneratedtypes.BranchKeyMaterials) AwsCryptographyKeyStoreTypes.BranchKeyMaterials {
   491  	return func() AwsCryptographyKeyStoreTypes.BranchKeyMaterials {
   492  
   493  		return AwsCryptographyKeyStoreTypes.Companion_BranchKeyMaterials_.Create_BranchKeyMaterials_(Aws_cryptography_keyStore_BranchKeyMaterials_branchKeyIdentifier_ToDafny(input.BranchKeyIdentifier), Aws_cryptography_keyStore_BranchKeyMaterials_branchKeyVersion_ToDafny(input.BranchKeyVersion), Aws_cryptography_keyStore_BranchKeyMaterials_encryptionContext_ToDafny(input.EncryptionContext), Aws_cryptography_keyStore_BranchKeyMaterials_branchKey_ToDafny(input.BranchKey))
   494  	}()
   495  }
   496  
   497  func Aws_cryptography_keyStore_GetKeyStoreInfoOutput_keyStoreId_ToDafny(input string) dafny.Sequence {
   498  	return func() dafny.Sequence {
   499  
   500  		return func() dafny.Sequence {
   501  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
   502  			if err != nil {
   503  				panic("invalid utf8 input provided")
   504  			}
   505  			return res
   506  		}()
   507  	}()
   508  }
   509  
   510  func Aws_cryptography_keyStore_GetKeyStoreInfoOutput_keyStoreName_ToDafny(input string) dafny.Sequence {
   511  	return func() dafny.Sequence {
   512  
   513  		return func() dafny.Sequence {
   514  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
   515  			if err != nil {
   516  				panic("invalid utf8 input provided")
   517  			}
   518  			return res
   519  		}()
   520  	}()
   521  }
   522  
   523  func Aws_cryptography_keyStore_GetKeyStoreInfoOutput_logicalKeyStoreName_ToDafny(input string) dafny.Sequence {
   524  	return func() dafny.Sequence {
   525  
   526  		return func() dafny.Sequence {
   527  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
   528  			if err != nil {
   529  				panic("invalid utf8 input provided")
   530  			}
   531  			return res
   532  		}()
   533  	}()
   534  }
   535  
   536  func Aws_cryptography_keyStore_GetKeyStoreInfoOutput_grantTokens_ToDafny(input []string) dafny.Sequence {
   537  	return func() dafny.Sequence {
   538  
   539  		var fieldValue []interface{} = make([]interface{}, 0)
   540  		for _, val := range input {
   541  			element := Aws_cryptography_keyStore_GrantTokenList_member_ToDafny(val)
   542  			fieldValue = append(fieldValue, element)
   543  		}
   544  		return dafny.SeqOf(fieldValue...)
   545  	}()
   546  }
   547  
   548  func Aws_cryptography_keyStore_GrantTokenList_member_ToDafny(input string) dafny.Sequence {
   549  	return func() dafny.Sequence {
   550  
   551  		return func() dafny.Sequence {
   552  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
   553  			if err != nil {
   554  				panic("invalid utf8 input provided")
   555  			}
   556  			return res
   557  		}()
   558  	}()
   559  }
   560  
   561  func Aws_cryptography_keyStore_GetKeyStoreInfoOutput_kmsConfiguration_ToDafny(input awscryptographykeystoresmithygeneratedtypes.KMSConfiguration) AwsCryptographyKeyStoreTypes.KMSConfiguration {
   562  	return func() AwsCryptographyKeyStoreTypes.KMSConfiguration {
   563  
   564  		switch input.(type) {
   565  		case *awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberkmsKeyArn:
   566  			var inputToConversion = Aws_cryptography_keyStore_KMSConfiguration_kmsKeyArn_ToDafny(input.(*awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberkmsKeyArn).Value)
   567  			return AwsCryptographyKeyStoreTypes.CompanionStruct_KMSConfiguration_{}.Create_kmsKeyArn_(inputToConversion.UnwrapOr(nil).(dafny.Sequence))
   568  		case *awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberkmsMRKeyArn:
   569  			var inputToConversion = Aws_cryptography_keyStore_KMSConfiguration_kmsMRKeyArn_ToDafny(input.(*awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberkmsMRKeyArn).Value)
   570  			return AwsCryptographyKeyStoreTypes.CompanionStruct_KMSConfiguration_{}.Create_kmsMRKeyArn_(inputToConversion.UnwrapOr(nil).(dafny.Sequence))
   571  		case *awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberdiscovery:
   572  			var inputToConversion = Aws_cryptography_keyStore_KMSConfiguration_discovery_ToDafny(input.(*awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberdiscovery).Value)
   573  			return AwsCryptographyKeyStoreTypes.CompanionStruct_KMSConfiguration_{}.Create_discovery_(inputToConversion.UnwrapOr(nil).(AwsCryptographyKeyStoreTypes.Discovery))
   574  		case *awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMembermrDiscovery:
   575  			var inputToConversion = Aws_cryptography_keyStore_KMSConfiguration_mrDiscovery_ToDafny(input.(*awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMembermrDiscovery).Value)
   576  			return AwsCryptographyKeyStoreTypes.CompanionStruct_KMSConfiguration_{}.Create_mrDiscovery_(inputToConversion.UnwrapOr(nil).(AwsCryptographyKeyStoreTypes.MRDiscovery))
   577  
   578  		default:
   579  			panic("Unhandled union type")
   580  		}
   581  	}()
   582  }
   583  
   584  func Aws_cryptography_keyStore_KMSConfiguration_kmsKeyArn_ToDafny(input string) Wrappers.Option {
   585  	return func() Wrappers.Option {
   586  
   587  		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
   588  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
   589  			if err != nil {
   590  				panic("invalid utf8 input provided")
   591  			}
   592  			return res
   593  		}())
   594  	}()
   595  }
   596  
   597  func Aws_cryptography_keyStore_KMSConfiguration_kmsMRKeyArn_ToDafny(input string) Wrappers.Option {
   598  	return func() Wrappers.Option {
   599  
   600  		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
   601  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
   602  			if err != nil {
   603  				panic("invalid utf8 input provided")
   604  			}
   605  			return res
   606  		}())
   607  	}()
   608  }
   609  
   610  func Aws_cryptography_keyStore_KMSConfiguration_discovery_ToDafny(input awscryptographykeystoresmithygeneratedtypes.Discovery) Wrappers.Option {
   611  	return func() Wrappers.Option {
   612  
   613  		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyKeyStoreTypes.Companion_Discovery_.Create_Discovery_())
   614  	}()
   615  }
   616  
   617  func Aws_cryptography_keyStore_KMSConfiguration_mrDiscovery_ToDafny(input awscryptographykeystoresmithygeneratedtypes.MRDiscovery) Wrappers.Option {
   618  	return func() Wrappers.Option {
   619  
   620  		return Wrappers.Companion_Option_.Create_Some_(AwsCryptographyKeyStoreTypes.Companion_MRDiscovery_.Create_MRDiscovery_(Aws_cryptography_keyStore_MRDiscovery_region_ToDafny(input.Region)))
   621  	}()
   622  }
   623  
   624  func Aws_cryptography_keyStore_MRDiscovery_region_ToDafny(input string) dafny.Sequence {
   625  	return func() dafny.Sequence {
   626  
   627  		return func() dafny.Sequence {
   628  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
   629  			if err != nil {
   630  				panic("invalid utf8 input provided")
   631  			}
   632  			return res
   633  		}()
   634  	}()
   635  }
   636  
   637  func Aws_cryptography_keyStore_VersionKeyInput_branchKeyIdentifier_ToDafny(input string) dafny.Sequence {
   638  	return func() dafny.Sequence {
   639  
   640  		return func() dafny.Sequence {
   641  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
   642  			if err != nil {
   643  				panic("invalid utf8 input provided")
   644  			}
   645  			return res
   646  		}()
   647  	}()
   648  }
   649  
   650  func Aws_cryptography_keyStore_KeyStoreException_message_ToDafny(input string) dafny.Sequence {
   651  	return func() dafny.Sequence {
   652  
   653  		return func() dafny.Sequence {
   654  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
   655  			if err != nil {
   656  				panic("invalid utf8 input provided")
   657  			}
   658  			return res
   659  		}()
   660  	}()
   661  }
   662  
   663  func Aws_cryptography_keyStore_KeyStoreConfig_ddbTableName_ToDafny(input string) dafny.Sequence {
   664  	return func() dafny.Sequence {
   665  
   666  		return func() dafny.Sequence {
   667  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
   668  			if err != nil {
   669  				panic("invalid utf8 input provided")
   670  			}
   671  			return res
   672  		}()
   673  	}()
   674  }
   675  
   676  func Aws_cryptography_keyStore_KeyStoreConfig_kmsConfiguration_ToDafny(input awscryptographykeystoresmithygeneratedtypes.KMSConfiguration) AwsCryptographyKeyStoreTypes.KMSConfiguration {
   677  	return func() AwsCryptographyKeyStoreTypes.KMSConfiguration {
   678  
   679  		switch input.(type) {
   680  		case *awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberkmsKeyArn:
   681  			var inputToConversion = Aws_cryptography_keyStore_KMSConfiguration_kmsKeyArn_ToDafny(input.(*awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberkmsKeyArn).Value)
   682  			return AwsCryptographyKeyStoreTypes.CompanionStruct_KMSConfiguration_{}.Create_kmsKeyArn_(inputToConversion.UnwrapOr(nil).(dafny.Sequence))
   683  		case *awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberkmsMRKeyArn:
   684  			var inputToConversion = Aws_cryptography_keyStore_KMSConfiguration_kmsMRKeyArn_ToDafny(input.(*awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberkmsMRKeyArn).Value)
   685  			return AwsCryptographyKeyStoreTypes.CompanionStruct_KMSConfiguration_{}.Create_kmsMRKeyArn_(inputToConversion.UnwrapOr(nil).(dafny.Sequence))
   686  		case *awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberdiscovery:
   687  			var inputToConversion = Aws_cryptography_keyStore_KMSConfiguration_discovery_ToDafny(input.(*awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMemberdiscovery).Value)
   688  			return AwsCryptographyKeyStoreTypes.CompanionStruct_KMSConfiguration_{}.Create_discovery_(inputToConversion.UnwrapOr(nil).(AwsCryptographyKeyStoreTypes.Discovery))
   689  		case *awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMembermrDiscovery:
   690  			var inputToConversion = Aws_cryptography_keyStore_KMSConfiguration_mrDiscovery_ToDafny(input.(*awscryptographykeystoresmithygeneratedtypes.KMSConfigurationMembermrDiscovery).Value)
   691  			return AwsCryptographyKeyStoreTypes.CompanionStruct_KMSConfiguration_{}.Create_mrDiscovery_(inputToConversion.UnwrapOr(nil).(AwsCryptographyKeyStoreTypes.MRDiscovery))
   692  
   693  		default:
   694  			panic("Unhandled union type")
   695  		}
   696  	}()
   697  }
   698  
   699  func Aws_cryptography_keyStore_KeyStoreConfig_logicalKeyStoreName_ToDafny(input string) dafny.Sequence {
   700  	return func() dafny.Sequence {
   701  
   702  		return func() dafny.Sequence {
   703  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(input))
   704  			if err != nil {
   705  				panic("invalid utf8 input provided")
   706  			}
   707  			return res
   708  		}()
   709  	}()
   710  }
   711  
   712  func Aws_cryptography_keyStore_KeyStoreConfig_id_ToDafny(input *string) Wrappers.Option {
   713  	return func() Wrappers.Option {
   714  		if input == nil {
   715  			return Wrappers.Companion_Option_.Create_None_()
   716  		}
   717  		return Wrappers.Companion_Option_.Create_Some_(func() dafny.Sequence {
   718  			res, err := UTF8.DecodeFromNativeGoByteArray([]byte(*input))
   719  			if err != nil {
   720  				panic("invalid utf8 input provided")
   721  			}
   722  			return res
   723  		}())
   724  	}()
   725  }
   726  
   727  func Aws_cryptography_keyStore_KeyStoreConfig_grantTokens_ToDafny(input []string) Wrappers.Option {
   728  	return func() Wrappers.Option {
   729  		if input == nil {
   730  			return Wrappers.Companion_Option_.Create_None_()
   731  		}
   732  		var fieldValue []interface{} = make([]interface{}, 0)
   733  		for _, val := range input {
   734  			element := Aws_cryptography_keyStore_GrantTokenList_member_ToDafny(val)
   735  			fieldValue = append(fieldValue, element)
   736  		}
   737  		return Wrappers.Companion_Option_.Create_Some_(dafny.SeqOf(fieldValue...))
   738  	}()
   739  }
   740  
   741  func Aws_cryptography_keyStore_KeyStoreConfig_ddbClient_ToDafny(input *dynamodb.Client) Wrappers.Option {
   742  	return func() Wrappers.Option {
   743  		if (input) == nil {
   744  			return Wrappers.Companion_Option_.Create_None_()
   745  		}
   746  		return Wrappers.Companion_Option_.Create_Some_(&DynamoDBwrapped.Shim{Client: input})
   747  	}()
   748  }
   749  
   750  func Aws_cryptography_keyStore_KeyStoreConfig_kmsClient_ToDafny(input *kms.Client) Wrappers.Option {
   751  	return func() Wrappers.Option {
   752  		if (input) == nil {
   753  			return Wrappers.Companion_Option_.Create_None_()
   754  		}
   755  		return Wrappers.Companion_Option_.Create_Some_(&KMSwrapped.Shim{Client: input})
   756  	}()
   757  }