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

     1  // Package AwsCryptographyMaterialProvidersTypes
     2  // Dafny module AwsCryptographyMaterialProvidersTypes compiled into Go
     3  
     4  package AwsCryptographyMaterialProvidersTypes
     5  
     6  import (
     7  	os "os"
     8  
     9  	m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes"
    10  	m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes"
    11  	m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes"
    12  	m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives"
    13  	m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations"
    14  	m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes"
    15  	m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest"
    16  	m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF"
    17  	m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr"
    18  	m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random"
    19  	m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF"
    20  	m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC"
    21  	m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions"
    22  	m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64"
    23  	m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas"
    24  	m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts"
    25  	m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals"
    26  	m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear"
    27  	m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod"
    28  	m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO"
    29  	m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare"
    30  	m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions"
    31  	m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals"
    32  	m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt"
    33  	m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings"
    34  	m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm"
    35  	m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_"
    36  	m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals"
    37  	m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear"
    38  	m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul"
    39  	m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals"
    40  	m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear"
    41  	m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power"
    42  	m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations"
    43  	m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq"
    44  	m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort"
    45  	m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting"
    46  	m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary"
    47  	m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop"
    48  	m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence"
    49  	m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String"
    50  	m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt"
    51  	m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams"
    52  	m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8"
    53  	m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings"
    54  	m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_"
    55  	m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm"
    56  	m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm"
    57  	m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
    58  	m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_"
    59  	_dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny"
    60  )
    61  
    62  var _ = os.Args
    63  var _ _dafny.Dummy__
    64  var _ m__System.Dummy__
    65  var _ m_Wrappers.Dummy__
    66  var _ m_BoundedInts.Dummy__
    67  var _ m_StandardLibrary_UInt.Dummy__
    68  var _ m_StandardLibrary_Sequence.Dummy__
    69  var _ m_StandardLibrary_String.Dummy__
    70  var _ m_StandardLibrary.Dummy__
    71  var _ m_AwsCryptographyPrimitivesTypes.Dummy__
    72  var _ m_Random.Dummy__
    73  var _ m_Digest.Dummy__
    74  var _ m_WrappedHMAC.Dummy__
    75  var _ m_HKDF.Dummy__
    76  var _ m_WrappedHKDF.Dummy__
    77  var _ m_KdfCtr.Dummy__
    78  var _ m_AwsCryptographyPrimitivesOperations.Dummy__
    79  var _ m_AtomicPrimitives.Dummy__
    80  var _ m_ComAmazonawsDynamodbTypes.Dummy__
    81  var _ m_ComAmazonawsKmsTypes.Dummy__
    82  var _ m_Relations.Dummy__
    83  var _ m_Seq_MergeSort.Dummy__
    84  var _ m__Math.Dummy__
    85  var _ m_Seq.Dummy__
    86  var _ m__Unicode.Dummy__
    87  var _ m_Functions.Dummy__
    88  var _ m_Utf8EncodingForm.Dummy__
    89  var _ m_Utf16EncodingForm.Dummy__
    90  var _ m_UnicodeStrings.Dummy__
    91  var _ m_FileIO.Dummy__
    92  var _ m_GeneralInternals.Dummy__
    93  var _ m_MulInternalsNonlinear.Dummy__
    94  var _ m_MulInternals.Dummy__
    95  var _ m_Mul.Dummy__
    96  var _ m_ModInternalsNonlinear.Dummy__
    97  var _ m_DivInternalsNonlinear.Dummy__
    98  var _ m_ModInternals.Dummy__
    99  var _ m_DivInternals.Dummy__
   100  var _ m_DivMod.Dummy__
   101  var _ m_Power.Dummy__
   102  var _ m_Logarithm.Dummy__
   103  var _ m_StandardLibraryInterop.Dummy__
   104  var _ m_Streams.Dummy__
   105  var _ m_Sorting.Dummy__
   106  var _ m_HexStrings.Dummy__
   107  var _ m_GetOpt.Dummy__
   108  var _ m_FloatCompare.Dummy__
   109  var _ m_Base64.Dummy__
   110  var _ m_Base64Lemmas.Dummy__
   111  var _ m_Actions.Dummy__
   112  var _ m_AwsCryptographyKeyStoreTypes.Dummy__
   113  
   114  type Dummy__ struct{}
   115  
   116  // Definition of class Default__
   117  type Default__ struct {
   118  	dummy byte
   119  }
   120  
   121  func New_Default___() *Default__ {
   122  	_this := Default__{}
   123  
   124  	return &_this
   125  }
   126  
   127  type CompanionStruct_Default___ struct {
   128  }
   129  
   130  var Companion_Default___ = CompanionStruct_Default___{}
   131  
   132  func (_this *Default__) Equals(other *Default__) bool {
   133  	return _this == other
   134  }
   135  
   136  func (_this *Default__) EqualsGeneric(x interface{}) bool {
   137  	other, ok := x.(*Default__)
   138  	return ok && _this.Equals(other)
   139  }
   140  
   141  func (*Default__) String() string {
   142  	return "AwsCryptographyMaterialProvidersTypes.Default__"
   143  }
   144  func (_this *Default__) ParentTraits_() []*_dafny.TraitID {
   145  	return [](*_dafny.TraitID){}
   146  }
   147  
   148  var _ _dafny.TraitOffspring = &Default__{}
   149  
   150  func (_static *CompanionStruct_Default___) IsValid__CountingNumber(x int32) bool {
   151  	return (int32(1)) <= (x)
   152  }
   153  func (_static *CompanionStruct_Default___) IsValid__PositiveInteger(x int32) bool {
   154  	return (int32(0)) <= (x)
   155  }
   156  func (_static *CompanionStruct_Default___) IsValid__PositiveLong(x int64) bool {
   157  	return (int64(0)) <= (x)
   158  }
   159  func (_static *CompanionStruct_Default___) IsDummySubsetType(x _dafny.Int) bool {
   160  	return (x).Sign() == 1
   161  }
   162  
   163  // End of class Default__
   164  
   165  // Definition of datatype DafnyCallEvent
   166  type DafnyCallEvent struct {
   167  	Data_DafnyCallEvent_
   168  }
   169  
   170  func (_this DafnyCallEvent) Get_() Data_DafnyCallEvent_ {
   171  	return _this.Data_DafnyCallEvent_
   172  }
   173  
   174  type Data_DafnyCallEvent_ interface {
   175  	isDafnyCallEvent()
   176  }
   177  
   178  type CompanionStruct_DafnyCallEvent_ struct {
   179  }
   180  
   181  var Companion_DafnyCallEvent_ = CompanionStruct_DafnyCallEvent_{}
   182  
   183  type DafnyCallEvent_DafnyCallEvent struct {
   184  	Input  interface{}
   185  	Output interface{}
   186  }
   187  
   188  func (DafnyCallEvent_DafnyCallEvent) isDafnyCallEvent() {}
   189  
   190  func (CompanionStruct_DafnyCallEvent_) Create_DafnyCallEvent_(Input interface{}, Output interface{}) DafnyCallEvent {
   191  	return DafnyCallEvent{DafnyCallEvent_DafnyCallEvent{Input, Output}}
   192  }
   193  
   194  func (_this DafnyCallEvent) Is_DafnyCallEvent() bool {
   195  	_, ok := _this.Get_().(DafnyCallEvent_DafnyCallEvent)
   196  	return ok
   197  }
   198  
   199  func (CompanionStruct_DafnyCallEvent_) Default(_default_I interface{}, _default_O interface{}) DafnyCallEvent {
   200  	return Companion_DafnyCallEvent_.Create_DafnyCallEvent_(_default_I, _default_O)
   201  }
   202  
   203  func (_this DafnyCallEvent) Dtor_input() interface{} {
   204  	return _this.Get_().(DafnyCallEvent_DafnyCallEvent).Input
   205  }
   206  
   207  func (_this DafnyCallEvent) Dtor_output() interface{} {
   208  	return _this.Get_().(DafnyCallEvent_DafnyCallEvent).Output
   209  }
   210  
   211  func (_this DafnyCallEvent) String() string {
   212  	switch data := _this.Get_().(type) {
   213  	case nil:
   214  		return "null"
   215  	case DafnyCallEvent_DafnyCallEvent:
   216  		{
   217  			return "AwsCryptographyMaterialProvidersTypes.DafnyCallEvent.DafnyCallEvent" + "(" + _dafny.String(data.Input) + ", " + _dafny.String(data.Output) + ")"
   218  		}
   219  	default:
   220  		{
   221  			return "<unexpected>"
   222  		}
   223  	}
   224  }
   225  
   226  func (_this DafnyCallEvent) Equals(other DafnyCallEvent) bool {
   227  	switch data1 := _this.Get_().(type) {
   228  	case DafnyCallEvent_DafnyCallEvent:
   229  		{
   230  			data2, ok := other.Get_().(DafnyCallEvent_DafnyCallEvent)
   231  			return ok && _dafny.AreEqual(data1.Input, data2.Input) && _dafny.AreEqual(data1.Output, data2.Output)
   232  		}
   233  	default:
   234  		{
   235  			return false // unexpected
   236  		}
   237  	}
   238  }
   239  
   240  func (_this DafnyCallEvent) EqualsGeneric(other interface{}) bool {
   241  	typed, ok := other.(DafnyCallEvent)
   242  	return ok && _this.Equals(typed)
   243  }
   244  
   245  func Type_DafnyCallEvent_(Type_I_ _dafny.TypeDescriptor, Type_O_ _dafny.TypeDescriptor) _dafny.TypeDescriptor {
   246  	return type_DafnyCallEvent_{Type_I_, Type_O_}
   247  }
   248  
   249  type type_DafnyCallEvent_ struct {
   250  	Type_I_ _dafny.TypeDescriptor
   251  	Type_O_ _dafny.TypeDescriptor
   252  }
   253  
   254  func (_this type_DafnyCallEvent_) Default() interface{} {
   255  	Type_I_ := _this.Type_I_
   256  	_ = Type_I_
   257  	Type_O_ := _this.Type_O_
   258  	_ = Type_O_
   259  	return Companion_DafnyCallEvent_.Default(Type_I_.Default(), Type_O_.Default())
   260  }
   261  
   262  func (_this type_DafnyCallEvent_) String() string {
   263  	return "AwsCryptographyMaterialProvidersTypes.DafnyCallEvent"
   264  }
   265  func (_this DafnyCallEvent) ParentTraits_() []*_dafny.TraitID {
   266  	return [](*_dafny.TraitID){}
   267  }
   268  
   269  var _ _dafny.TraitOffspring = DafnyCallEvent{}
   270  
   271  // End of datatype DafnyCallEvent
   272  
   273  // Definition of datatype AesWrappingAlg
   274  type AesWrappingAlg struct {
   275  	Data_AesWrappingAlg_
   276  }
   277  
   278  func (_this AesWrappingAlg) Get_() Data_AesWrappingAlg_ {
   279  	return _this.Data_AesWrappingAlg_
   280  }
   281  
   282  type Data_AesWrappingAlg_ interface {
   283  	isAesWrappingAlg()
   284  }
   285  
   286  type CompanionStruct_AesWrappingAlg_ struct {
   287  }
   288  
   289  var Companion_AesWrappingAlg_ = CompanionStruct_AesWrappingAlg_{}
   290  
   291  type AesWrappingAlg_ALG__AES128__GCM__IV12__TAG16 struct {
   292  }
   293  
   294  func (AesWrappingAlg_ALG__AES128__GCM__IV12__TAG16) isAesWrappingAlg() {}
   295  
   296  func (CompanionStruct_AesWrappingAlg_) Create_ALG__AES128__GCM__IV12__TAG16_() AesWrappingAlg {
   297  	return AesWrappingAlg{AesWrappingAlg_ALG__AES128__GCM__IV12__TAG16{}}
   298  }
   299  
   300  func (_this AesWrappingAlg) Is_ALG__AES128__GCM__IV12__TAG16() bool {
   301  	_, ok := _this.Get_().(AesWrappingAlg_ALG__AES128__GCM__IV12__TAG16)
   302  	return ok
   303  }
   304  
   305  type AesWrappingAlg_ALG__AES192__GCM__IV12__TAG16 struct {
   306  }
   307  
   308  func (AesWrappingAlg_ALG__AES192__GCM__IV12__TAG16) isAesWrappingAlg() {}
   309  
   310  func (CompanionStruct_AesWrappingAlg_) Create_ALG__AES192__GCM__IV12__TAG16_() AesWrappingAlg {
   311  	return AesWrappingAlg{AesWrappingAlg_ALG__AES192__GCM__IV12__TAG16{}}
   312  }
   313  
   314  func (_this AesWrappingAlg) Is_ALG__AES192__GCM__IV12__TAG16() bool {
   315  	_, ok := _this.Get_().(AesWrappingAlg_ALG__AES192__GCM__IV12__TAG16)
   316  	return ok
   317  }
   318  
   319  type AesWrappingAlg_ALG__AES256__GCM__IV12__TAG16 struct {
   320  }
   321  
   322  func (AesWrappingAlg_ALG__AES256__GCM__IV12__TAG16) isAesWrappingAlg() {}
   323  
   324  func (CompanionStruct_AesWrappingAlg_) Create_ALG__AES256__GCM__IV12__TAG16_() AesWrappingAlg {
   325  	return AesWrappingAlg{AesWrappingAlg_ALG__AES256__GCM__IV12__TAG16{}}
   326  }
   327  
   328  func (_this AesWrappingAlg) Is_ALG__AES256__GCM__IV12__TAG16() bool {
   329  	_, ok := _this.Get_().(AesWrappingAlg_ALG__AES256__GCM__IV12__TAG16)
   330  	return ok
   331  }
   332  
   333  func (CompanionStruct_AesWrappingAlg_) Default() AesWrappingAlg {
   334  	return Companion_AesWrappingAlg_.Create_ALG__AES128__GCM__IV12__TAG16_()
   335  }
   336  
   337  func (_ CompanionStruct_AesWrappingAlg_) AllSingletonConstructors() _dafny.Iterator {
   338  	i := -1
   339  	return func() (interface{}, bool) {
   340  		i++
   341  		switch i {
   342  		case 0:
   343  			return Companion_AesWrappingAlg_.Create_ALG__AES128__GCM__IV12__TAG16_(), true
   344  		case 1:
   345  			return Companion_AesWrappingAlg_.Create_ALG__AES192__GCM__IV12__TAG16_(), true
   346  		case 2:
   347  			return Companion_AesWrappingAlg_.Create_ALG__AES256__GCM__IV12__TAG16_(), true
   348  		default:
   349  			return AesWrappingAlg{}, false
   350  		}
   351  	}
   352  }
   353  
   354  func (_this AesWrappingAlg) String() string {
   355  	switch _this.Get_().(type) {
   356  	case nil:
   357  		return "null"
   358  	case AesWrappingAlg_ALG__AES128__GCM__IV12__TAG16:
   359  		{
   360  			return "AwsCryptographyMaterialProvidersTypes.AesWrappingAlg.ALG_AES128_GCM_IV12_TAG16"
   361  		}
   362  	case AesWrappingAlg_ALG__AES192__GCM__IV12__TAG16:
   363  		{
   364  			return "AwsCryptographyMaterialProvidersTypes.AesWrappingAlg.ALG_AES192_GCM_IV12_TAG16"
   365  		}
   366  	case AesWrappingAlg_ALG__AES256__GCM__IV12__TAG16:
   367  		{
   368  			return "AwsCryptographyMaterialProvidersTypes.AesWrappingAlg.ALG_AES256_GCM_IV12_TAG16"
   369  		}
   370  	default:
   371  		{
   372  			return "<unexpected>"
   373  		}
   374  	}
   375  }
   376  
   377  func (_this AesWrappingAlg) Equals(other AesWrappingAlg) bool {
   378  	switch _this.Get_().(type) {
   379  	case AesWrappingAlg_ALG__AES128__GCM__IV12__TAG16:
   380  		{
   381  			_, ok := other.Get_().(AesWrappingAlg_ALG__AES128__GCM__IV12__TAG16)
   382  			return ok
   383  		}
   384  	case AesWrappingAlg_ALG__AES192__GCM__IV12__TAG16:
   385  		{
   386  			_, ok := other.Get_().(AesWrappingAlg_ALG__AES192__GCM__IV12__TAG16)
   387  			return ok
   388  		}
   389  	case AesWrappingAlg_ALG__AES256__GCM__IV12__TAG16:
   390  		{
   391  			_, ok := other.Get_().(AesWrappingAlg_ALG__AES256__GCM__IV12__TAG16)
   392  			return ok
   393  		}
   394  	default:
   395  		{
   396  			return false // unexpected
   397  		}
   398  	}
   399  }
   400  
   401  func (_this AesWrappingAlg) EqualsGeneric(other interface{}) bool {
   402  	typed, ok := other.(AesWrappingAlg)
   403  	return ok && _this.Equals(typed)
   404  }
   405  
   406  func Type_AesWrappingAlg_() _dafny.TypeDescriptor {
   407  	return type_AesWrappingAlg_{}
   408  }
   409  
   410  type type_AesWrappingAlg_ struct {
   411  }
   412  
   413  func (_this type_AesWrappingAlg_) Default() interface{} {
   414  	return Companion_AesWrappingAlg_.Default()
   415  }
   416  
   417  func (_this type_AesWrappingAlg_) String() string {
   418  	return "AwsCryptographyMaterialProvidersTypes.AesWrappingAlg"
   419  }
   420  func (_this AesWrappingAlg) ParentTraits_() []*_dafny.TraitID {
   421  	return [](*_dafny.TraitID){}
   422  }
   423  
   424  var _ _dafny.TraitOffspring = AesWrappingAlg{}
   425  
   426  // End of datatype AesWrappingAlg
   427  
   428  // Definition of datatype AlgorithmSuiteId
   429  type AlgorithmSuiteId struct {
   430  	Data_AlgorithmSuiteId_
   431  }
   432  
   433  func (_this AlgorithmSuiteId) Get_() Data_AlgorithmSuiteId_ {
   434  	return _this.Data_AlgorithmSuiteId_
   435  }
   436  
   437  type Data_AlgorithmSuiteId_ interface {
   438  	isAlgorithmSuiteId()
   439  }
   440  
   441  type CompanionStruct_AlgorithmSuiteId_ struct {
   442  }
   443  
   444  var Companion_AlgorithmSuiteId_ = CompanionStruct_AlgorithmSuiteId_{}
   445  
   446  type AlgorithmSuiteId_ESDK struct {
   447  	ESDK ESDKAlgorithmSuiteId
   448  }
   449  
   450  func (AlgorithmSuiteId_ESDK) isAlgorithmSuiteId() {}
   451  
   452  func (CompanionStruct_AlgorithmSuiteId_) Create_ESDK_(ESDK ESDKAlgorithmSuiteId) AlgorithmSuiteId {
   453  	return AlgorithmSuiteId{AlgorithmSuiteId_ESDK{ESDK}}
   454  }
   455  
   456  func (_this AlgorithmSuiteId) Is_ESDK() bool {
   457  	_, ok := _this.Get_().(AlgorithmSuiteId_ESDK)
   458  	return ok
   459  }
   460  
   461  type AlgorithmSuiteId_DBE struct {
   462  	DBE DBEAlgorithmSuiteId
   463  }
   464  
   465  func (AlgorithmSuiteId_DBE) isAlgorithmSuiteId() {}
   466  
   467  func (CompanionStruct_AlgorithmSuiteId_) Create_DBE_(DBE DBEAlgorithmSuiteId) AlgorithmSuiteId {
   468  	return AlgorithmSuiteId{AlgorithmSuiteId_DBE{DBE}}
   469  }
   470  
   471  func (_this AlgorithmSuiteId) Is_DBE() bool {
   472  	_, ok := _this.Get_().(AlgorithmSuiteId_DBE)
   473  	return ok
   474  }
   475  
   476  func (CompanionStruct_AlgorithmSuiteId_) Default() AlgorithmSuiteId {
   477  	return Companion_AlgorithmSuiteId_.Create_ESDK_(Companion_ESDKAlgorithmSuiteId_.Default())
   478  }
   479  
   480  func (_this AlgorithmSuiteId) Dtor_ESDK() ESDKAlgorithmSuiteId {
   481  	return _this.Get_().(AlgorithmSuiteId_ESDK).ESDK
   482  }
   483  
   484  func (_this AlgorithmSuiteId) Dtor_DBE() DBEAlgorithmSuiteId {
   485  	return _this.Get_().(AlgorithmSuiteId_DBE).DBE
   486  }
   487  
   488  func (_this AlgorithmSuiteId) String() string {
   489  	switch data := _this.Get_().(type) {
   490  	case nil:
   491  		return "null"
   492  	case AlgorithmSuiteId_ESDK:
   493  		{
   494  			return "AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId.ESDK" + "(" + _dafny.String(data.ESDK) + ")"
   495  		}
   496  	case AlgorithmSuiteId_DBE:
   497  		{
   498  			return "AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId.DBE" + "(" + _dafny.String(data.DBE) + ")"
   499  		}
   500  	default:
   501  		{
   502  			return "<unexpected>"
   503  		}
   504  	}
   505  }
   506  
   507  func (_this AlgorithmSuiteId) Equals(other AlgorithmSuiteId) bool {
   508  	switch data1 := _this.Get_().(type) {
   509  	case AlgorithmSuiteId_ESDK:
   510  		{
   511  			data2, ok := other.Get_().(AlgorithmSuiteId_ESDK)
   512  			return ok && data1.ESDK.Equals(data2.ESDK)
   513  		}
   514  	case AlgorithmSuiteId_DBE:
   515  		{
   516  			data2, ok := other.Get_().(AlgorithmSuiteId_DBE)
   517  			return ok && data1.DBE.Equals(data2.DBE)
   518  		}
   519  	default:
   520  		{
   521  			return false // unexpected
   522  		}
   523  	}
   524  }
   525  
   526  func (_this AlgorithmSuiteId) EqualsGeneric(other interface{}) bool {
   527  	typed, ok := other.(AlgorithmSuiteId)
   528  	return ok && _this.Equals(typed)
   529  }
   530  
   531  func Type_AlgorithmSuiteId_() _dafny.TypeDescriptor {
   532  	return type_AlgorithmSuiteId_{}
   533  }
   534  
   535  type type_AlgorithmSuiteId_ struct {
   536  }
   537  
   538  func (_this type_AlgorithmSuiteId_) Default() interface{} {
   539  	return Companion_AlgorithmSuiteId_.Default()
   540  }
   541  
   542  func (_this type_AlgorithmSuiteId_) String() string {
   543  	return "AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteId"
   544  }
   545  func (_this AlgorithmSuiteId) ParentTraits_() []*_dafny.TraitID {
   546  	return [](*_dafny.TraitID){}
   547  }
   548  
   549  var _ _dafny.TraitOffspring = AlgorithmSuiteId{}
   550  
   551  // End of datatype AlgorithmSuiteId
   552  
   553  // Definition of datatype AlgorithmSuiteInfo
   554  type AlgorithmSuiteInfo struct {
   555  	Data_AlgorithmSuiteInfo_
   556  }
   557  
   558  func (_this AlgorithmSuiteInfo) Get_() Data_AlgorithmSuiteInfo_ {
   559  	return _this.Data_AlgorithmSuiteInfo_
   560  }
   561  
   562  type Data_AlgorithmSuiteInfo_ interface {
   563  	isAlgorithmSuiteInfo()
   564  }
   565  
   566  type CompanionStruct_AlgorithmSuiteInfo_ struct {
   567  }
   568  
   569  var Companion_AlgorithmSuiteInfo_ = CompanionStruct_AlgorithmSuiteInfo_{}
   570  
   571  type AlgorithmSuiteInfo_AlgorithmSuiteInfo struct {
   572  	Id                 AlgorithmSuiteId
   573  	BinaryId           _dafny.Sequence
   574  	MessageVersion     int32
   575  	Encrypt            Encrypt
   576  	Kdf                DerivationAlgorithm
   577  	Commitment         DerivationAlgorithm
   578  	Signature          SignatureAlgorithm
   579  	SymmetricSignature SymmetricSignatureAlgorithm
   580  	EdkWrapping        EdkWrappingAlgorithm
   581  }
   582  
   583  func (AlgorithmSuiteInfo_AlgorithmSuiteInfo) isAlgorithmSuiteInfo() {}
   584  
   585  func (CompanionStruct_AlgorithmSuiteInfo_) Create_AlgorithmSuiteInfo_(Id AlgorithmSuiteId, BinaryId _dafny.Sequence, MessageVersion int32, Encrypt Encrypt, Kdf DerivationAlgorithm, Commitment DerivationAlgorithm, Signature SignatureAlgorithm, SymmetricSignature SymmetricSignatureAlgorithm, EdkWrapping EdkWrappingAlgorithm) AlgorithmSuiteInfo {
   586  	return AlgorithmSuiteInfo{AlgorithmSuiteInfo_AlgorithmSuiteInfo{Id, BinaryId, MessageVersion, Encrypt, Kdf, Commitment, Signature, SymmetricSignature, EdkWrapping}}
   587  }
   588  
   589  func (_this AlgorithmSuiteInfo) Is_AlgorithmSuiteInfo() bool {
   590  	_, ok := _this.Get_().(AlgorithmSuiteInfo_AlgorithmSuiteInfo)
   591  	return ok
   592  }
   593  
   594  func (CompanionStruct_AlgorithmSuiteInfo_) Default() AlgorithmSuiteInfo {
   595  	return Companion_AlgorithmSuiteInfo_.Create_AlgorithmSuiteInfo_(Companion_AlgorithmSuiteId_.Default(), _dafny.EmptySeq, int32(0), Companion_Encrypt_.Default(), Companion_DerivationAlgorithm_.Default(), Companion_DerivationAlgorithm_.Default(), Companion_SignatureAlgorithm_.Default(), Companion_SymmetricSignatureAlgorithm_.Default(), Companion_EdkWrappingAlgorithm_.Default())
   596  }
   597  
   598  func (_this AlgorithmSuiteInfo) Dtor_id() AlgorithmSuiteId {
   599  	return _this.Get_().(AlgorithmSuiteInfo_AlgorithmSuiteInfo).Id
   600  }
   601  
   602  func (_this AlgorithmSuiteInfo) Dtor_binaryId() _dafny.Sequence {
   603  	return _this.Get_().(AlgorithmSuiteInfo_AlgorithmSuiteInfo).BinaryId
   604  }
   605  
   606  func (_this AlgorithmSuiteInfo) Dtor_messageVersion() int32 {
   607  	return _this.Get_().(AlgorithmSuiteInfo_AlgorithmSuiteInfo).MessageVersion
   608  }
   609  
   610  func (_this AlgorithmSuiteInfo) Dtor_encrypt() Encrypt {
   611  	return _this.Get_().(AlgorithmSuiteInfo_AlgorithmSuiteInfo).Encrypt
   612  }
   613  
   614  func (_this AlgorithmSuiteInfo) Dtor_kdf() DerivationAlgorithm {
   615  	return _this.Get_().(AlgorithmSuiteInfo_AlgorithmSuiteInfo).Kdf
   616  }
   617  
   618  func (_this AlgorithmSuiteInfo) Dtor_commitment() DerivationAlgorithm {
   619  	return _this.Get_().(AlgorithmSuiteInfo_AlgorithmSuiteInfo).Commitment
   620  }
   621  
   622  func (_this AlgorithmSuiteInfo) Dtor_signature() SignatureAlgorithm {
   623  	return _this.Get_().(AlgorithmSuiteInfo_AlgorithmSuiteInfo).Signature
   624  }
   625  
   626  func (_this AlgorithmSuiteInfo) Dtor_symmetricSignature() SymmetricSignatureAlgorithm {
   627  	return _this.Get_().(AlgorithmSuiteInfo_AlgorithmSuiteInfo).SymmetricSignature
   628  }
   629  
   630  func (_this AlgorithmSuiteInfo) Dtor_edkWrapping() EdkWrappingAlgorithm {
   631  	return _this.Get_().(AlgorithmSuiteInfo_AlgorithmSuiteInfo).EdkWrapping
   632  }
   633  
   634  func (_this AlgorithmSuiteInfo) String() string {
   635  	switch data := _this.Get_().(type) {
   636  	case nil:
   637  		return "null"
   638  	case AlgorithmSuiteInfo_AlgorithmSuiteInfo:
   639  		{
   640  			return "AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo.AlgorithmSuiteInfo" + "(" + _dafny.String(data.Id) + ", " + _dafny.String(data.BinaryId) + ", " + _dafny.String(data.MessageVersion) + ", " + _dafny.String(data.Encrypt) + ", " + _dafny.String(data.Kdf) + ", " + _dafny.String(data.Commitment) + ", " + _dafny.String(data.Signature) + ", " + _dafny.String(data.SymmetricSignature) + ", " + _dafny.String(data.EdkWrapping) + ")"
   641  		}
   642  	default:
   643  		{
   644  			return "<unexpected>"
   645  		}
   646  	}
   647  }
   648  
   649  func (_this AlgorithmSuiteInfo) Equals(other AlgorithmSuiteInfo) bool {
   650  	switch data1 := _this.Get_().(type) {
   651  	case AlgorithmSuiteInfo_AlgorithmSuiteInfo:
   652  		{
   653  			data2, ok := other.Get_().(AlgorithmSuiteInfo_AlgorithmSuiteInfo)
   654  			return ok && data1.Id.Equals(data2.Id) && data1.BinaryId.Equals(data2.BinaryId) && data1.MessageVersion == data2.MessageVersion && data1.Encrypt.Equals(data2.Encrypt) && data1.Kdf.Equals(data2.Kdf) && data1.Commitment.Equals(data2.Commitment) && data1.Signature.Equals(data2.Signature) && data1.SymmetricSignature.Equals(data2.SymmetricSignature) && data1.EdkWrapping.Equals(data2.EdkWrapping)
   655  		}
   656  	default:
   657  		{
   658  			return false // unexpected
   659  		}
   660  	}
   661  }
   662  
   663  func (_this AlgorithmSuiteInfo) EqualsGeneric(other interface{}) bool {
   664  	typed, ok := other.(AlgorithmSuiteInfo)
   665  	return ok && _this.Equals(typed)
   666  }
   667  
   668  func Type_AlgorithmSuiteInfo_() _dafny.TypeDescriptor {
   669  	return type_AlgorithmSuiteInfo_{}
   670  }
   671  
   672  type type_AlgorithmSuiteInfo_ struct {
   673  }
   674  
   675  func (_this type_AlgorithmSuiteInfo_) Default() interface{} {
   676  	return Companion_AlgorithmSuiteInfo_.Default()
   677  }
   678  
   679  func (_this type_AlgorithmSuiteInfo_) String() string {
   680  	return "AwsCryptographyMaterialProvidersTypes.AlgorithmSuiteInfo"
   681  }
   682  func (_this AlgorithmSuiteInfo) ParentTraits_() []*_dafny.TraitID {
   683  	return [](*_dafny.TraitID){}
   684  }
   685  
   686  var _ _dafny.TraitOffspring = AlgorithmSuiteInfo{}
   687  
   688  // End of datatype AlgorithmSuiteInfo
   689  
   690  // Definition of class IAwsCryptographicMaterialProvidersClientCallHistory
   691  type IAwsCryptographicMaterialProvidersClientCallHistory struct {
   692  	dummy byte
   693  }
   694  
   695  func New_IAwsCryptographicMaterialProvidersClientCallHistory_() *IAwsCryptographicMaterialProvidersClientCallHistory {
   696  	_this := IAwsCryptographicMaterialProvidersClientCallHistory{}
   697  
   698  	return &_this
   699  }
   700  
   701  type CompanionStruct_IAwsCryptographicMaterialProvidersClientCallHistory_ struct {
   702  }
   703  
   704  var Companion_IAwsCryptographicMaterialProvidersClientCallHistory_ = CompanionStruct_IAwsCryptographicMaterialProvidersClientCallHistory_{}
   705  
   706  func (_this *IAwsCryptographicMaterialProvidersClientCallHistory) Equals(other *IAwsCryptographicMaterialProvidersClientCallHistory) bool {
   707  	return _this == other
   708  }
   709  
   710  func (_this *IAwsCryptographicMaterialProvidersClientCallHistory) EqualsGeneric(x interface{}) bool {
   711  	other, ok := x.(*IAwsCryptographicMaterialProvidersClientCallHistory)
   712  	return ok && _this.Equals(other)
   713  }
   714  
   715  func (*IAwsCryptographicMaterialProvidersClientCallHistory) String() string {
   716  	return "AwsCryptographyMaterialProvidersTypes.IAwsCryptographicMaterialProvidersClientCallHistory"
   717  }
   718  
   719  func Type_IAwsCryptographicMaterialProvidersClientCallHistory_() _dafny.TypeDescriptor {
   720  	return type_IAwsCryptographicMaterialProvidersClientCallHistory_{}
   721  }
   722  
   723  type type_IAwsCryptographicMaterialProvidersClientCallHistory_ struct {
   724  }
   725  
   726  func (_this type_IAwsCryptographicMaterialProvidersClientCallHistory_) Default() interface{} {
   727  	return (*IAwsCryptographicMaterialProvidersClientCallHistory)(nil)
   728  }
   729  
   730  func (_this type_IAwsCryptographicMaterialProvidersClientCallHistory_) String() string {
   731  	return "AwsCryptographyMaterialProvidersTypes.IAwsCryptographicMaterialProvidersClientCallHistory"
   732  }
   733  func (_this *IAwsCryptographicMaterialProvidersClientCallHistory) ParentTraits_() []*_dafny.TraitID {
   734  	return [](*_dafny.TraitID){}
   735  }
   736  
   737  var _ _dafny.TraitOffspring = &IAwsCryptographicMaterialProvidersClientCallHistory{}
   738  
   739  // End of class IAwsCryptographicMaterialProvidersClientCallHistory
   740  
   741  // Definition of trait IAwsCryptographicMaterialProvidersClient
   742  type IAwsCryptographicMaterialProvidersClient interface {
   743  	String() string
   744  	CreateAwsKmsKeyring(input CreateAwsKmsKeyringInput) m_Wrappers.Result
   745  	CreateAwsKmsDiscoveryKeyring(input CreateAwsKmsDiscoveryKeyringInput) m_Wrappers.Result
   746  	CreateAwsKmsMultiKeyring(input CreateAwsKmsMultiKeyringInput) m_Wrappers.Result
   747  	CreateAwsKmsDiscoveryMultiKeyring(input CreateAwsKmsDiscoveryMultiKeyringInput) m_Wrappers.Result
   748  	CreateAwsKmsMrkKeyring(input CreateAwsKmsMrkKeyringInput) m_Wrappers.Result
   749  	CreateAwsKmsMrkMultiKeyring(input CreateAwsKmsMrkMultiKeyringInput) m_Wrappers.Result
   750  	CreateAwsKmsMrkDiscoveryKeyring(input CreateAwsKmsMrkDiscoveryKeyringInput) m_Wrappers.Result
   751  	CreateAwsKmsMrkDiscoveryMultiKeyring(input CreateAwsKmsMrkDiscoveryMultiKeyringInput) m_Wrappers.Result
   752  	CreateAwsKmsHierarchicalKeyring(input CreateAwsKmsHierarchicalKeyringInput) m_Wrappers.Result
   753  	CreateAwsKmsRsaKeyring(input CreateAwsKmsRsaKeyringInput) m_Wrappers.Result
   754  	CreateAwsKmsEcdhKeyring(input CreateAwsKmsEcdhKeyringInput) m_Wrappers.Result
   755  	CreateMultiKeyring(input CreateMultiKeyringInput) m_Wrappers.Result
   756  	CreateRawAesKeyring(input CreateRawAesKeyringInput) m_Wrappers.Result
   757  	CreateRawRsaKeyring(input CreateRawRsaKeyringInput) m_Wrappers.Result
   758  	CreateRawEcdhKeyring(input CreateRawEcdhKeyringInput) m_Wrappers.Result
   759  	CreateDefaultCryptographicMaterialsManager(input CreateDefaultCryptographicMaterialsManagerInput) m_Wrappers.Result
   760  	CreateRequiredEncryptionContextCMM(input CreateRequiredEncryptionContextCMMInput) m_Wrappers.Result
   761  	CreateCryptographicMaterialsCache(input CreateCryptographicMaterialsCacheInput) m_Wrappers.Result
   762  	CreateDefaultClientSupplier(input CreateDefaultClientSupplierInput) m_Wrappers.Result
   763  	InitializeEncryptionMaterials(input InitializeEncryptionMaterialsInput) m_Wrappers.Result
   764  	InitializeDecryptionMaterials(input InitializeDecryptionMaterialsInput) m_Wrappers.Result
   765  	ValidEncryptionMaterialsTransition(input ValidEncryptionMaterialsTransitionInput) m_Wrappers.Result
   766  	ValidDecryptionMaterialsTransition(input ValidDecryptionMaterialsTransitionInput) m_Wrappers.Result
   767  	EncryptionMaterialsHasPlaintextDataKey(input EncryptionMaterials) m_Wrappers.Result
   768  	DecryptionMaterialsWithPlaintextDataKey(input DecryptionMaterials) m_Wrappers.Result
   769  	GetAlgorithmSuiteInfo(input _dafny.Sequence) m_Wrappers.Result
   770  	ValidAlgorithmSuiteInfo(input AlgorithmSuiteInfo) m_Wrappers.Result
   771  	ValidateCommitmentPolicyOnEncrypt(input ValidateCommitmentPolicyOnEncryptInput) m_Wrappers.Result
   772  	ValidateCommitmentPolicyOnDecrypt(input ValidateCommitmentPolicyOnDecryptInput) m_Wrappers.Result
   773  }
   774  type CompanionStruct_IAwsCryptographicMaterialProvidersClient_ struct {
   775  	TraitID_ *_dafny.TraitID
   776  }
   777  
   778  var Companion_IAwsCryptographicMaterialProvidersClient_ = CompanionStruct_IAwsCryptographicMaterialProvidersClient_{
   779  	TraitID_: &_dafny.TraitID{},
   780  }
   781  
   782  func (CompanionStruct_IAwsCryptographicMaterialProvidersClient_) CastTo_(x interface{}) IAwsCryptographicMaterialProvidersClient {
   783  	var t IAwsCryptographicMaterialProvidersClient
   784  	t, _ = x.(IAwsCryptographicMaterialProvidersClient)
   785  	return t
   786  }
   787  
   788  // End of trait IAwsCryptographicMaterialProvidersClient
   789  
   790  // Definition of class IBranchKeyIdSupplierCallHistory
   791  type IBranchKeyIdSupplierCallHistory struct {
   792  	dummy byte
   793  }
   794  
   795  func New_IBranchKeyIdSupplierCallHistory_() *IBranchKeyIdSupplierCallHistory {
   796  	_this := IBranchKeyIdSupplierCallHistory{}
   797  
   798  	return &_this
   799  }
   800  
   801  type CompanionStruct_IBranchKeyIdSupplierCallHistory_ struct {
   802  }
   803  
   804  var Companion_IBranchKeyIdSupplierCallHistory_ = CompanionStruct_IBranchKeyIdSupplierCallHistory_{}
   805  
   806  func (_this *IBranchKeyIdSupplierCallHistory) Equals(other *IBranchKeyIdSupplierCallHistory) bool {
   807  	return _this == other
   808  }
   809  
   810  func (_this *IBranchKeyIdSupplierCallHistory) EqualsGeneric(x interface{}) bool {
   811  	other, ok := x.(*IBranchKeyIdSupplierCallHistory)
   812  	return ok && _this.Equals(other)
   813  }
   814  
   815  func (*IBranchKeyIdSupplierCallHistory) String() string {
   816  	return "AwsCryptographyMaterialProvidersTypes.IBranchKeyIdSupplierCallHistory"
   817  }
   818  
   819  func Type_IBranchKeyIdSupplierCallHistory_() _dafny.TypeDescriptor {
   820  	return type_IBranchKeyIdSupplierCallHistory_{}
   821  }
   822  
   823  type type_IBranchKeyIdSupplierCallHistory_ struct {
   824  }
   825  
   826  func (_this type_IBranchKeyIdSupplierCallHistory_) Default() interface{} {
   827  	return (*IBranchKeyIdSupplierCallHistory)(nil)
   828  }
   829  
   830  func (_this type_IBranchKeyIdSupplierCallHistory_) String() string {
   831  	return "AwsCryptographyMaterialProvidersTypes.IBranchKeyIdSupplierCallHistory"
   832  }
   833  func (_this *IBranchKeyIdSupplierCallHistory) ParentTraits_() []*_dafny.TraitID {
   834  	return [](*_dafny.TraitID){}
   835  }
   836  
   837  var _ _dafny.TraitOffspring = &IBranchKeyIdSupplierCallHistory{}
   838  
   839  // End of class IBranchKeyIdSupplierCallHistory
   840  
   841  // Definition of trait IBranchKeyIdSupplier
   842  type IBranchKeyIdSupplier interface {
   843  	String() string
   844  	GetBranchKeyId(input GetBranchKeyIdInput) m_Wrappers.Result
   845  	GetBranchKeyId_k(input GetBranchKeyIdInput) m_Wrappers.Result
   846  }
   847  
   848  func (_static *CompanionStruct_IBranchKeyIdSupplier_) GetBranchKeyId(_this IBranchKeyIdSupplier, input GetBranchKeyIdInput) m_Wrappers.Result {
   849  	{
   850  		var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(Companion_GetBranchKeyIdOutput_.Default())
   851  		_ = output
   852  		var _out0 m_Wrappers.Result
   853  		_ = _out0
   854  		_out0 = (_this).GetBranchKeyId_k(input)
   855  		output = _out0
   856  		return output
   857  	}
   858  }
   859  
   860  type CompanionStruct_IBranchKeyIdSupplier_ struct {
   861  	TraitID_ *_dafny.TraitID
   862  }
   863  
   864  var Companion_IBranchKeyIdSupplier_ = CompanionStruct_IBranchKeyIdSupplier_{
   865  	TraitID_: &_dafny.TraitID{},
   866  }
   867  
   868  func (CompanionStruct_IBranchKeyIdSupplier_) CastTo_(x interface{}) IBranchKeyIdSupplier {
   869  	var t IBranchKeyIdSupplier
   870  	t, _ = x.(IBranchKeyIdSupplier)
   871  	return t
   872  }
   873  
   874  // End of trait IBranchKeyIdSupplier
   875  
   876  // Definition of datatype CacheType
   877  type CacheType struct {
   878  	Data_CacheType_
   879  }
   880  
   881  func (_this CacheType) Get_() Data_CacheType_ {
   882  	return _this.Data_CacheType_
   883  }
   884  
   885  type Data_CacheType_ interface {
   886  	isCacheType()
   887  }
   888  
   889  type CompanionStruct_CacheType_ struct {
   890  }
   891  
   892  var Companion_CacheType_ = CompanionStruct_CacheType_{}
   893  
   894  type CacheType_Default struct {
   895  	Default DefaultCache
   896  }
   897  
   898  func (CacheType_Default) isCacheType() {}
   899  
   900  func (CompanionStruct_CacheType_) Create_Default_(Default DefaultCache) CacheType {
   901  	return CacheType{CacheType_Default{Default}}
   902  }
   903  
   904  func (_this CacheType) Is_Default() bool {
   905  	_, ok := _this.Get_().(CacheType_Default)
   906  	return ok
   907  }
   908  
   909  type CacheType_No struct {
   910  	No NoCache
   911  }
   912  
   913  func (CacheType_No) isCacheType() {}
   914  
   915  func (CompanionStruct_CacheType_) Create_No_(No NoCache) CacheType {
   916  	return CacheType{CacheType_No{No}}
   917  }
   918  
   919  func (_this CacheType) Is_No() bool {
   920  	_, ok := _this.Get_().(CacheType_No)
   921  	return ok
   922  }
   923  
   924  type CacheType_SingleThreaded struct {
   925  	SingleThreaded SingleThreadedCache
   926  }
   927  
   928  func (CacheType_SingleThreaded) isCacheType() {}
   929  
   930  func (CompanionStruct_CacheType_) Create_SingleThreaded_(SingleThreaded SingleThreadedCache) CacheType {
   931  	return CacheType{CacheType_SingleThreaded{SingleThreaded}}
   932  }
   933  
   934  func (_this CacheType) Is_SingleThreaded() bool {
   935  	_, ok := _this.Get_().(CacheType_SingleThreaded)
   936  	return ok
   937  }
   938  
   939  type CacheType_MultiThreaded struct {
   940  	MultiThreaded MultiThreadedCache
   941  }
   942  
   943  func (CacheType_MultiThreaded) isCacheType() {}
   944  
   945  func (CompanionStruct_CacheType_) Create_MultiThreaded_(MultiThreaded MultiThreadedCache) CacheType {
   946  	return CacheType{CacheType_MultiThreaded{MultiThreaded}}
   947  }
   948  
   949  func (_this CacheType) Is_MultiThreaded() bool {
   950  	_, ok := _this.Get_().(CacheType_MultiThreaded)
   951  	return ok
   952  }
   953  
   954  type CacheType_StormTracking struct {
   955  	StormTracking StormTrackingCache
   956  }
   957  
   958  func (CacheType_StormTracking) isCacheType() {}
   959  
   960  func (CompanionStruct_CacheType_) Create_StormTracking_(StormTracking StormTrackingCache) CacheType {
   961  	return CacheType{CacheType_StormTracking{StormTracking}}
   962  }
   963  
   964  func (_this CacheType) Is_StormTracking() bool {
   965  	_, ok := _this.Get_().(CacheType_StormTracking)
   966  	return ok
   967  }
   968  
   969  type CacheType_Shared struct {
   970  	Shared ICryptographicMaterialsCache
   971  }
   972  
   973  func (CacheType_Shared) isCacheType() {}
   974  
   975  func (CompanionStruct_CacheType_) Create_Shared_(Shared ICryptographicMaterialsCache) CacheType {
   976  	return CacheType{CacheType_Shared{Shared}}
   977  }
   978  
   979  func (_this CacheType) Is_Shared() bool {
   980  	_, ok := _this.Get_().(CacheType_Shared)
   981  	return ok
   982  }
   983  
   984  func (CompanionStruct_CacheType_) Default() CacheType {
   985  	return Companion_CacheType_.Create_Default_(Companion_DefaultCache_.Default())
   986  }
   987  
   988  func (_this CacheType) Dtor_Default() DefaultCache {
   989  	return _this.Get_().(CacheType_Default).Default
   990  }
   991  
   992  func (_this CacheType) Dtor_No() NoCache {
   993  	return _this.Get_().(CacheType_No).No
   994  }
   995  
   996  func (_this CacheType) Dtor_SingleThreaded() SingleThreadedCache {
   997  	return _this.Get_().(CacheType_SingleThreaded).SingleThreaded
   998  }
   999  
  1000  func (_this CacheType) Dtor_MultiThreaded() MultiThreadedCache {
  1001  	return _this.Get_().(CacheType_MultiThreaded).MultiThreaded
  1002  }
  1003  
  1004  func (_this CacheType) Dtor_StormTracking() StormTrackingCache {
  1005  	return _this.Get_().(CacheType_StormTracking).StormTracking
  1006  }
  1007  
  1008  func (_this CacheType) Dtor_Shared() ICryptographicMaterialsCache {
  1009  	return _this.Get_().(CacheType_Shared).Shared
  1010  }
  1011  
  1012  func (_this CacheType) String() string {
  1013  	switch data := _this.Get_().(type) {
  1014  	case nil:
  1015  		return "null"
  1016  	case CacheType_Default:
  1017  		{
  1018  			return "AwsCryptographyMaterialProvidersTypes.CacheType.Default" + "(" + _dafny.String(data.Default) + ")"
  1019  		}
  1020  	case CacheType_No:
  1021  		{
  1022  			return "AwsCryptographyMaterialProvidersTypes.CacheType.No" + "(" + _dafny.String(data.No) + ")"
  1023  		}
  1024  	case CacheType_SingleThreaded:
  1025  		{
  1026  			return "AwsCryptographyMaterialProvidersTypes.CacheType.SingleThreaded" + "(" + _dafny.String(data.SingleThreaded) + ")"
  1027  		}
  1028  	case CacheType_MultiThreaded:
  1029  		{
  1030  			return "AwsCryptographyMaterialProvidersTypes.CacheType.MultiThreaded" + "(" + _dafny.String(data.MultiThreaded) + ")"
  1031  		}
  1032  	case CacheType_StormTracking:
  1033  		{
  1034  			return "AwsCryptographyMaterialProvidersTypes.CacheType.StormTracking" + "(" + _dafny.String(data.StormTracking) + ")"
  1035  		}
  1036  	case CacheType_Shared:
  1037  		{
  1038  			return "AwsCryptographyMaterialProvidersTypes.CacheType.Shared" + "(" + _dafny.String(data.Shared) + ")"
  1039  		}
  1040  	default:
  1041  		{
  1042  			return "<unexpected>"
  1043  		}
  1044  	}
  1045  }
  1046  
  1047  func (_this CacheType) Equals(other CacheType) bool {
  1048  	switch data1 := _this.Get_().(type) {
  1049  	case CacheType_Default:
  1050  		{
  1051  			data2, ok := other.Get_().(CacheType_Default)
  1052  			return ok && data1.Default.Equals(data2.Default)
  1053  		}
  1054  	case CacheType_No:
  1055  		{
  1056  			data2, ok := other.Get_().(CacheType_No)
  1057  			return ok && data1.No.Equals(data2.No)
  1058  		}
  1059  	case CacheType_SingleThreaded:
  1060  		{
  1061  			data2, ok := other.Get_().(CacheType_SingleThreaded)
  1062  			return ok && data1.SingleThreaded.Equals(data2.SingleThreaded)
  1063  		}
  1064  	case CacheType_MultiThreaded:
  1065  		{
  1066  			data2, ok := other.Get_().(CacheType_MultiThreaded)
  1067  			return ok && data1.MultiThreaded.Equals(data2.MultiThreaded)
  1068  		}
  1069  	case CacheType_StormTracking:
  1070  		{
  1071  			data2, ok := other.Get_().(CacheType_StormTracking)
  1072  			return ok && data1.StormTracking.Equals(data2.StormTracking)
  1073  		}
  1074  	case CacheType_Shared:
  1075  		{
  1076  			data2, ok := other.Get_().(CacheType_Shared)
  1077  			return ok && _dafny.AreEqual(data1.Shared, data2.Shared)
  1078  		}
  1079  	default:
  1080  		{
  1081  			return false // unexpected
  1082  		}
  1083  	}
  1084  }
  1085  
  1086  func (_this CacheType) EqualsGeneric(other interface{}) bool {
  1087  	typed, ok := other.(CacheType)
  1088  	return ok && _this.Equals(typed)
  1089  }
  1090  
  1091  func Type_CacheType_() _dafny.TypeDescriptor {
  1092  	return type_CacheType_{}
  1093  }
  1094  
  1095  type type_CacheType_ struct {
  1096  }
  1097  
  1098  func (_this type_CacheType_) Default() interface{} {
  1099  	return Companion_CacheType_.Default()
  1100  }
  1101  
  1102  func (_this type_CacheType_) String() string {
  1103  	return "AwsCryptographyMaterialProvidersTypes.CacheType"
  1104  }
  1105  func (_this CacheType) ParentTraits_() []*_dafny.TraitID {
  1106  	return [](*_dafny.TraitID){}
  1107  }
  1108  
  1109  var _ _dafny.TraitOffspring = CacheType{}
  1110  
  1111  // End of datatype CacheType
  1112  
  1113  // Definition of class IClientSupplierCallHistory
  1114  type IClientSupplierCallHistory struct {
  1115  	dummy byte
  1116  }
  1117  
  1118  func New_IClientSupplierCallHistory_() *IClientSupplierCallHistory {
  1119  	_this := IClientSupplierCallHistory{}
  1120  
  1121  	return &_this
  1122  }
  1123  
  1124  type CompanionStruct_IClientSupplierCallHistory_ struct {
  1125  }
  1126  
  1127  var Companion_IClientSupplierCallHistory_ = CompanionStruct_IClientSupplierCallHistory_{}
  1128  
  1129  func (_this *IClientSupplierCallHistory) Equals(other *IClientSupplierCallHistory) bool {
  1130  	return _this == other
  1131  }
  1132  
  1133  func (_this *IClientSupplierCallHistory) EqualsGeneric(x interface{}) bool {
  1134  	other, ok := x.(*IClientSupplierCallHistory)
  1135  	return ok && _this.Equals(other)
  1136  }
  1137  
  1138  func (*IClientSupplierCallHistory) String() string {
  1139  	return "AwsCryptographyMaterialProvidersTypes.IClientSupplierCallHistory"
  1140  }
  1141  
  1142  func Type_IClientSupplierCallHistory_() _dafny.TypeDescriptor {
  1143  	return type_IClientSupplierCallHistory_{}
  1144  }
  1145  
  1146  type type_IClientSupplierCallHistory_ struct {
  1147  }
  1148  
  1149  func (_this type_IClientSupplierCallHistory_) Default() interface{} {
  1150  	return (*IClientSupplierCallHistory)(nil)
  1151  }
  1152  
  1153  func (_this type_IClientSupplierCallHistory_) String() string {
  1154  	return "AwsCryptographyMaterialProvidersTypes.IClientSupplierCallHistory"
  1155  }
  1156  func (_this *IClientSupplierCallHistory) ParentTraits_() []*_dafny.TraitID {
  1157  	return [](*_dafny.TraitID){}
  1158  }
  1159  
  1160  var _ _dafny.TraitOffspring = &IClientSupplierCallHistory{}
  1161  
  1162  // End of class IClientSupplierCallHistory
  1163  
  1164  // Definition of trait IClientSupplier
  1165  type IClientSupplier interface {
  1166  	String() string
  1167  	GetClient(input GetClientInput) m_Wrappers.Result
  1168  	GetClient_k(input GetClientInput) m_Wrappers.Result
  1169  }
  1170  
  1171  func (_static *CompanionStruct_IClientSupplier_) GetClient(_this IClientSupplier, input GetClientInput) m_Wrappers.Result {
  1172  	{
  1173  		var output m_Wrappers.Result = m_Wrappers.Result{}
  1174  		_ = output
  1175  		var _out0 m_Wrappers.Result
  1176  		_ = _out0
  1177  		_out0 = (_this).GetClient_k(input)
  1178  		output = _out0
  1179  		return output
  1180  	}
  1181  }
  1182  
  1183  type CompanionStruct_IClientSupplier_ struct {
  1184  	TraitID_ *_dafny.TraitID
  1185  }
  1186  
  1187  var Companion_IClientSupplier_ = CompanionStruct_IClientSupplier_{
  1188  	TraitID_: &_dafny.TraitID{},
  1189  }
  1190  
  1191  func (CompanionStruct_IClientSupplier_) CastTo_(x interface{}) IClientSupplier {
  1192  	var t IClientSupplier
  1193  	t, _ = x.(IClientSupplier)
  1194  	return t
  1195  }
  1196  
  1197  // End of trait IClientSupplier
  1198  
  1199  // Definition of datatype CommitmentPolicy
  1200  type CommitmentPolicy struct {
  1201  	Data_CommitmentPolicy_
  1202  }
  1203  
  1204  func (_this CommitmentPolicy) Get_() Data_CommitmentPolicy_ {
  1205  	return _this.Data_CommitmentPolicy_
  1206  }
  1207  
  1208  type Data_CommitmentPolicy_ interface {
  1209  	isCommitmentPolicy()
  1210  }
  1211  
  1212  type CompanionStruct_CommitmentPolicy_ struct {
  1213  }
  1214  
  1215  var Companion_CommitmentPolicy_ = CompanionStruct_CommitmentPolicy_{}
  1216  
  1217  type CommitmentPolicy_ESDK struct {
  1218  	ESDK ESDKCommitmentPolicy
  1219  }
  1220  
  1221  func (CommitmentPolicy_ESDK) isCommitmentPolicy() {}
  1222  
  1223  func (CompanionStruct_CommitmentPolicy_) Create_ESDK_(ESDK ESDKCommitmentPolicy) CommitmentPolicy {
  1224  	return CommitmentPolicy{CommitmentPolicy_ESDK{ESDK}}
  1225  }
  1226  
  1227  func (_this CommitmentPolicy) Is_ESDK() bool {
  1228  	_, ok := _this.Get_().(CommitmentPolicy_ESDK)
  1229  	return ok
  1230  }
  1231  
  1232  type CommitmentPolicy_DBE struct {
  1233  	DBE DBECommitmentPolicy
  1234  }
  1235  
  1236  func (CommitmentPolicy_DBE) isCommitmentPolicy() {}
  1237  
  1238  func (CompanionStruct_CommitmentPolicy_) Create_DBE_(DBE DBECommitmentPolicy) CommitmentPolicy {
  1239  	return CommitmentPolicy{CommitmentPolicy_DBE{DBE}}
  1240  }
  1241  
  1242  func (_this CommitmentPolicy) Is_DBE() bool {
  1243  	_, ok := _this.Get_().(CommitmentPolicy_DBE)
  1244  	return ok
  1245  }
  1246  
  1247  func (CompanionStruct_CommitmentPolicy_) Default() CommitmentPolicy {
  1248  	return Companion_CommitmentPolicy_.Create_ESDK_(Companion_ESDKCommitmentPolicy_.Default())
  1249  }
  1250  
  1251  func (_this CommitmentPolicy) Dtor_ESDK() ESDKCommitmentPolicy {
  1252  	return _this.Get_().(CommitmentPolicy_ESDK).ESDK
  1253  }
  1254  
  1255  func (_this CommitmentPolicy) Dtor_DBE() DBECommitmentPolicy {
  1256  	return _this.Get_().(CommitmentPolicy_DBE).DBE
  1257  }
  1258  
  1259  func (_this CommitmentPolicy) String() string {
  1260  	switch data := _this.Get_().(type) {
  1261  	case nil:
  1262  		return "null"
  1263  	case CommitmentPolicy_ESDK:
  1264  		{
  1265  			return "AwsCryptographyMaterialProvidersTypes.CommitmentPolicy.ESDK" + "(" + _dafny.String(data.ESDK) + ")"
  1266  		}
  1267  	case CommitmentPolicy_DBE:
  1268  		{
  1269  			return "AwsCryptographyMaterialProvidersTypes.CommitmentPolicy.DBE" + "(" + _dafny.String(data.DBE) + ")"
  1270  		}
  1271  	default:
  1272  		{
  1273  			return "<unexpected>"
  1274  		}
  1275  	}
  1276  }
  1277  
  1278  func (_this CommitmentPolicy) Equals(other CommitmentPolicy) bool {
  1279  	switch data1 := _this.Get_().(type) {
  1280  	case CommitmentPolicy_ESDK:
  1281  		{
  1282  			data2, ok := other.Get_().(CommitmentPolicy_ESDK)
  1283  			return ok && data1.ESDK.Equals(data2.ESDK)
  1284  		}
  1285  	case CommitmentPolicy_DBE:
  1286  		{
  1287  			data2, ok := other.Get_().(CommitmentPolicy_DBE)
  1288  			return ok && data1.DBE.Equals(data2.DBE)
  1289  		}
  1290  	default:
  1291  		{
  1292  			return false // unexpected
  1293  		}
  1294  	}
  1295  }
  1296  
  1297  func (_this CommitmentPolicy) EqualsGeneric(other interface{}) bool {
  1298  	typed, ok := other.(CommitmentPolicy)
  1299  	return ok && _this.Equals(typed)
  1300  }
  1301  
  1302  func Type_CommitmentPolicy_() _dafny.TypeDescriptor {
  1303  	return type_CommitmentPolicy_{}
  1304  }
  1305  
  1306  type type_CommitmentPolicy_ struct {
  1307  }
  1308  
  1309  func (_this type_CommitmentPolicy_) Default() interface{} {
  1310  	return Companion_CommitmentPolicy_.Default()
  1311  }
  1312  
  1313  func (_this type_CommitmentPolicy_) String() string {
  1314  	return "AwsCryptographyMaterialProvidersTypes.CommitmentPolicy"
  1315  }
  1316  func (_this CommitmentPolicy) ParentTraits_() []*_dafny.TraitID {
  1317  	return [](*_dafny.TraitID){}
  1318  }
  1319  
  1320  var _ _dafny.TraitOffspring = CommitmentPolicy{}
  1321  
  1322  // End of datatype CommitmentPolicy
  1323  
  1324  // Definition of class CountingNumber
  1325  type CountingNumber struct {
  1326  }
  1327  
  1328  func New_CountingNumber_() *CountingNumber {
  1329  	_this := CountingNumber{}
  1330  
  1331  	return &_this
  1332  }
  1333  
  1334  type CompanionStruct_CountingNumber_ struct {
  1335  }
  1336  
  1337  var Companion_CountingNumber_ = CompanionStruct_CountingNumber_{}
  1338  
  1339  func (*CountingNumber) String() string {
  1340  	return "AwsCryptographyMaterialProvidersTypes.CountingNumber"
  1341  }
  1342  
  1343  // End of class CountingNumber
  1344  
  1345  func Type_CountingNumber_() _dafny.TypeDescriptor {
  1346  	return type_CountingNumber_{}
  1347  }
  1348  
  1349  type type_CountingNumber_ struct {
  1350  }
  1351  
  1352  func (_this type_CountingNumber_) Default() interface{} {
  1353  	return int32(0)
  1354  }
  1355  
  1356  func (_this type_CountingNumber_) String() string {
  1357  	return "AwsCryptographyMaterialProvidersTypes.CountingNumber"
  1358  }
  1359  func (_this *CompanionStruct_CountingNumber_) Is_(__source int32) bool {
  1360  	var _0_x int32 = (__source)
  1361  	_ = _0_x
  1362  	if true {
  1363  		return Companion_Default___.IsValid__CountingNumber(_0_x)
  1364  	}
  1365  	return false
  1366  }
  1367  
  1368  // Definition of datatype CreateAwsKmsDiscoveryKeyringInput
  1369  type CreateAwsKmsDiscoveryKeyringInput struct {
  1370  	Data_CreateAwsKmsDiscoveryKeyringInput_
  1371  }
  1372  
  1373  func (_this CreateAwsKmsDiscoveryKeyringInput) Get_() Data_CreateAwsKmsDiscoveryKeyringInput_ {
  1374  	return _this.Data_CreateAwsKmsDiscoveryKeyringInput_
  1375  }
  1376  
  1377  type Data_CreateAwsKmsDiscoveryKeyringInput_ interface {
  1378  	isCreateAwsKmsDiscoveryKeyringInput()
  1379  }
  1380  
  1381  type CompanionStruct_CreateAwsKmsDiscoveryKeyringInput_ struct {
  1382  }
  1383  
  1384  var Companion_CreateAwsKmsDiscoveryKeyringInput_ = CompanionStruct_CreateAwsKmsDiscoveryKeyringInput_{}
  1385  
  1386  type CreateAwsKmsDiscoveryKeyringInput_CreateAwsKmsDiscoveryKeyringInput struct {
  1387  	KmsClient       m_ComAmazonawsKmsTypes.IKMSClient
  1388  	DiscoveryFilter m_Wrappers.Option
  1389  	GrantTokens     m_Wrappers.Option
  1390  }
  1391  
  1392  func (CreateAwsKmsDiscoveryKeyringInput_CreateAwsKmsDiscoveryKeyringInput) isCreateAwsKmsDiscoveryKeyringInput() {
  1393  }
  1394  
  1395  func (CompanionStruct_CreateAwsKmsDiscoveryKeyringInput_) Create_CreateAwsKmsDiscoveryKeyringInput_(KmsClient m_ComAmazonawsKmsTypes.IKMSClient, DiscoveryFilter m_Wrappers.Option, GrantTokens m_Wrappers.Option) CreateAwsKmsDiscoveryKeyringInput {
  1396  	return CreateAwsKmsDiscoveryKeyringInput{CreateAwsKmsDiscoveryKeyringInput_CreateAwsKmsDiscoveryKeyringInput{KmsClient, DiscoveryFilter, GrantTokens}}
  1397  }
  1398  
  1399  func (_this CreateAwsKmsDiscoveryKeyringInput) Is_CreateAwsKmsDiscoveryKeyringInput() bool {
  1400  	_, ok := _this.Get_().(CreateAwsKmsDiscoveryKeyringInput_CreateAwsKmsDiscoveryKeyringInput)
  1401  	return ok
  1402  }
  1403  
  1404  func (CompanionStruct_CreateAwsKmsDiscoveryKeyringInput_) Default() CreateAwsKmsDiscoveryKeyringInput {
  1405  	return Companion_CreateAwsKmsDiscoveryKeyringInput_.Create_CreateAwsKmsDiscoveryKeyringInput_((m_ComAmazonawsKmsTypes.IKMSClient)(nil), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default())
  1406  }
  1407  
  1408  func (_this CreateAwsKmsDiscoveryKeyringInput) Dtor_kmsClient() m_ComAmazonawsKmsTypes.IKMSClient {
  1409  	return _this.Get_().(CreateAwsKmsDiscoveryKeyringInput_CreateAwsKmsDiscoveryKeyringInput).KmsClient
  1410  }
  1411  
  1412  func (_this CreateAwsKmsDiscoveryKeyringInput) Dtor_discoveryFilter() m_Wrappers.Option {
  1413  	return _this.Get_().(CreateAwsKmsDiscoveryKeyringInput_CreateAwsKmsDiscoveryKeyringInput).DiscoveryFilter
  1414  }
  1415  
  1416  func (_this CreateAwsKmsDiscoveryKeyringInput) Dtor_grantTokens() m_Wrappers.Option {
  1417  	return _this.Get_().(CreateAwsKmsDiscoveryKeyringInput_CreateAwsKmsDiscoveryKeyringInput).GrantTokens
  1418  }
  1419  
  1420  func (_this CreateAwsKmsDiscoveryKeyringInput) String() string {
  1421  	switch data := _this.Get_().(type) {
  1422  	case nil:
  1423  		return "null"
  1424  	case CreateAwsKmsDiscoveryKeyringInput_CreateAwsKmsDiscoveryKeyringInput:
  1425  		{
  1426  			return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsDiscoveryKeyringInput.CreateAwsKmsDiscoveryKeyringInput" + "(" + _dafny.String(data.KmsClient) + ", " + _dafny.String(data.DiscoveryFilter) + ", " + _dafny.String(data.GrantTokens) + ")"
  1427  		}
  1428  	default:
  1429  		{
  1430  			return "<unexpected>"
  1431  		}
  1432  	}
  1433  }
  1434  
  1435  func (_this CreateAwsKmsDiscoveryKeyringInput) Equals(other CreateAwsKmsDiscoveryKeyringInput) bool {
  1436  	switch data1 := _this.Get_().(type) {
  1437  	case CreateAwsKmsDiscoveryKeyringInput_CreateAwsKmsDiscoveryKeyringInput:
  1438  		{
  1439  			data2, ok := other.Get_().(CreateAwsKmsDiscoveryKeyringInput_CreateAwsKmsDiscoveryKeyringInput)
  1440  			return ok && _dafny.AreEqual(data1.KmsClient, data2.KmsClient) && data1.DiscoveryFilter.Equals(data2.DiscoveryFilter) && data1.GrantTokens.Equals(data2.GrantTokens)
  1441  		}
  1442  	default:
  1443  		{
  1444  			return false // unexpected
  1445  		}
  1446  	}
  1447  }
  1448  
  1449  func (_this CreateAwsKmsDiscoveryKeyringInput) EqualsGeneric(other interface{}) bool {
  1450  	typed, ok := other.(CreateAwsKmsDiscoveryKeyringInput)
  1451  	return ok && _this.Equals(typed)
  1452  }
  1453  
  1454  func Type_CreateAwsKmsDiscoveryKeyringInput_() _dafny.TypeDescriptor {
  1455  	return type_CreateAwsKmsDiscoveryKeyringInput_{}
  1456  }
  1457  
  1458  type type_CreateAwsKmsDiscoveryKeyringInput_ struct {
  1459  }
  1460  
  1461  func (_this type_CreateAwsKmsDiscoveryKeyringInput_) Default() interface{} {
  1462  	return Companion_CreateAwsKmsDiscoveryKeyringInput_.Default()
  1463  }
  1464  
  1465  func (_this type_CreateAwsKmsDiscoveryKeyringInput_) String() string {
  1466  	return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsDiscoveryKeyringInput"
  1467  }
  1468  func (_this CreateAwsKmsDiscoveryKeyringInput) ParentTraits_() []*_dafny.TraitID {
  1469  	return [](*_dafny.TraitID){}
  1470  }
  1471  
  1472  var _ _dafny.TraitOffspring = CreateAwsKmsDiscoveryKeyringInput{}
  1473  
  1474  // End of datatype CreateAwsKmsDiscoveryKeyringInput
  1475  
  1476  // Definition of datatype CreateAwsKmsDiscoveryMultiKeyringInput
  1477  type CreateAwsKmsDiscoveryMultiKeyringInput struct {
  1478  	Data_CreateAwsKmsDiscoveryMultiKeyringInput_
  1479  }
  1480  
  1481  func (_this CreateAwsKmsDiscoveryMultiKeyringInput) Get_() Data_CreateAwsKmsDiscoveryMultiKeyringInput_ {
  1482  	return _this.Data_CreateAwsKmsDiscoveryMultiKeyringInput_
  1483  }
  1484  
  1485  type Data_CreateAwsKmsDiscoveryMultiKeyringInput_ interface {
  1486  	isCreateAwsKmsDiscoveryMultiKeyringInput()
  1487  }
  1488  
  1489  type CompanionStruct_CreateAwsKmsDiscoveryMultiKeyringInput_ struct {
  1490  }
  1491  
  1492  var Companion_CreateAwsKmsDiscoveryMultiKeyringInput_ = CompanionStruct_CreateAwsKmsDiscoveryMultiKeyringInput_{}
  1493  
  1494  type CreateAwsKmsDiscoveryMultiKeyringInput_CreateAwsKmsDiscoveryMultiKeyringInput struct {
  1495  	Regions         _dafny.Sequence
  1496  	DiscoveryFilter m_Wrappers.Option
  1497  	ClientSupplier  m_Wrappers.Option
  1498  	GrantTokens     m_Wrappers.Option
  1499  }
  1500  
  1501  func (CreateAwsKmsDiscoveryMultiKeyringInput_CreateAwsKmsDiscoveryMultiKeyringInput) isCreateAwsKmsDiscoveryMultiKeyringInput() {
  1502  }
  1503  
  1504  func (CompanionStruct_CreateAwsKmsDiscoveryMultiKeyringInput_) Create_CreateAwsKmsDiscoveryMultiKeyringInput_(Regions _dafny.Sequence, DiscoveryFilter m_Wrappers.Option, ClientSupplier m_Wrappers.Option, GrantTokens m_Wrappers.Option) CreateAwsKmsDiscoveryMultiKeyringInput {
  1505  	return CreateAwsKmsDiscoveryMultiKeyringInput{CreateAwsKmsDiscoveryMultiKeyringInput_CreateAwsKmsDiscoveryMultiKeyringInput{Regions, DiscoveryFilter, ClientSupplier, GrantTokens}}
  1506  }
  1507  
  1508  func (_this CreateAwsKmsDiscoveryMultiKeyringInput) Is_CreateAwsKmsDiscoveryMultiKeyringInput() bool {
  1509  	_, ok := _this.Get_().(CreateAwsKmsDiscoveryMultiKeyringInput_CreateAwsKmsDiscoveryMultiKeyringInput)
  1510  	return ok
  1511  }
  1512  
  1513  func (CompanionStruct_CreateAwsKmsDiscoveryMultiKeyringInput_) Default() CreateAwsKmsDiscoveryMultiKeyringInput {
  1514  	return Companion_CreateAwsKmsDiscoveryMultiKeyringInput_.Create_CreateAwsKmsDiscoveryMultiKeyringInput_(_dafny.EmptySeq, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default())
  1515  }
  1516  
  1517  func (_this CreateAwsKmsDiscoveryMultiKeyringInput) Dtor_regions() _dafny.Sequence {
  1518  	return _this.Get_().(CreateAwsKmsDiscoveryMultiKeyringInput_CreateAwsKmsDiscoveryMultiKeyringInput).Regions
  1519  }
  1520  
  1521  func (_this CreateAwsKmsDiscoveryMultiKeyringInput) Dtor_discoveryFilter() m_Wrappers.Option {
  1522  	return _this.Get_().(CreateAwsKmsDiscoveryMultiKeyringInput_CreateAwsKmsDiscoveryMultiKeyringInput).DiscoveryFilter
  1523  }
  1524  
  1525  func (_this CreateAwsKmsDiscoveryMultiKeyringInput) Dtor_clientSupplier() m_Wrappers.Option {
  1526  	return _this.Get_().(CreateAwsKmsDiscoveryMultiKeyringInput_CreateAwsKmsDiscoveryMultiKeyringInput).ClientSupplier
  1527  }
  1528  
  1529  func (_this CreateAwsKmsDiscoveryMultiKeyringInput) Dtor_grantTokens() m_Wrappers.Option {
  1530  	return _this.Get_().(CreateAwsKmsDiscoveryMultiKeyringInput_CreateAwsKmsDiscoveryMultiKeyringInput).GrantTokens
  1531  }
  1532  
  1533  func (_this CreateAwsKmsDiscoveryMultiKeyringInput) String() string {
  1534  	switch data := _this.Get_().(type) {
  1535  	case nil:
  1536  		return "null"
  1537  	case CreateAwsKmsDiscoveryMultiKeyringInput_CreateAwsKmsDiscoveryMultiKeyringInput:
  1538  		{
  1539  			return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsDiscoveryMultiKeyringInput.CreateAwsKmsDiscoveryMultiKeyringInput" + "(" + _dafny.String(data.Regions) + ", " + _dafny.String(data.DiscoveryFilter) + ", " + _dafny.String(data.ClientSupplier) + ", " + _dafny.String(data.GrantTokens) + ")"
  1540  		}
  1541  	default:
  1542  		{
  1543  			return "<unexpected>"
  1544  		}
  1545  	}
  1546  }
  1547  
  1548  func (_this CreateAwsKmsDiscoveryMultiKeyringInput) Equals(other CreateAwsKmsDiscoveryMultiKeyringInput) bool {
  1549  	switch data1 := _this.Get_().(type) {
  1550  	case CreateAwsKmsDiscoveryMultiKeyringInput_CreateAwsKmsDiscoveryMultiKeyringInput:
  1551  		{
  1552  			data2, ok := other.Get_().(CreateAwsKmsDiscoveryMultiKeyringInput_CreateAwsKmsDiscoveryMultiKeyringInput)
  1553  			return ok && data1.Regions.Equals(data2.Regions) && data1.DiscoveryFilter.Equals(data2.DiscoveryFilter) && data1.ClientSupplier.Equals(data2.ClientSupplier) && data1.GrantTokens.Equals(data2.GrantTokens)
  1554  		}
  1555  	default:
  1556  		{
  1557  			return false // unexpected
  1558  		}
  1559  	}
  1560  }
  1561  
  1562  func (_this CreateAwsKmsDiscoveryMultiKeyringInput) EqualsGeneric(other interface{}) bool {
  1563  	typed, ok := other.(CreateAwsKmsDiscoveryMultiKeyringInput)
  1564  	return ok && _this.Equals(typed)
  1565  }
  1566  
  1567  func Type_CreateAwsKmsDiscoveryMultiKeyringInput_() _dafny.TypeDescriptor {
  1568  	return type_CreateAwsKmsDiscoveryMultiKeyringInput_{}
  1569  }
  1570  
  1571  type type_CreateAwsKmsDiscoveryMultiKeyringInput_ struct {
  1572  }
  1573  
  1574  func (_this type_CreateAwsKmsDiscoveryMultiKeyringInput_) Default() interface{} {
  1575  	return Companion_CreateAwsKmsDiscoveryMultiKeyringInput_.Default()
  1576  }
  1577  
  1578  func (_this type_CreateAwsKmsDiscoveryMultiKeyringInput_) String() string {
  1579  	return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsDiscoveryMultiKeyringInput"
  1580  }
  1581  func (_this CreateAwsKmsDiscoveryMultiKeyringInput) ParentTraits_() []*_dafny.TraitID {
  1582  	return [](*_dafny.TraitID){}
  1583  }
  1584  
  1585  var _ _dafny.TraitOffspring = CreateAwsKmsDiscoveryMultiKeyringInput{}
  1586  
  1587  // End of datatype CreateAwsKmsDiscoveryMultiKeyringInput
  1588  
  1589  // Definition of datatype CreateAwsKmsEcdhKeyringInput
  1590  type CreateAwsKmsEcdhKeyringInput struct {
  1591  	Data_CreateAwsKmsEcdhKeyringInput_
  1592  }
  1593  
  1594  func (_this CreateAwsKmsEcdhKeyringInput) Get_() Data_CreateAwsKmsEcdhKeyringInput_ {
  1595  	return _this.Data_CreateAwsKmsEcdhKeyringInput_
  1596  }
  1597  
  1598  type Data_CreateAwsKmsEcdhKeyringInput_ interface {
  1599  	isCreateAwsKmsEcdhKeyringInput()
  1600  }
  1601  
  1602  type CompanionStruct_CreateAwsKmsEcdhKeyringInput_ struct {
  1603  }
  1604  
  1605  var Companion_CreateAwsKmsEcdhKeyringInput_ = CompanionStruct_CreateAwsKmsEcdhKeyringInput_{}
  1606  
  1607  type CreateAwsKmsEcdhKeyringInput_CreateAwsKmsEcdhKeyringInput struct {
  1608  	KeyAgreementScheme KmsEcdhStaticConfigurations
  1609  	CurveSpec          m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec
  1610  	KmsClient          m_ComAmazonawsKmsTypes.IKMSClient
  1611  	GrantTokens        m_Wrappers.Option
  1612  }
  1613  
  1614  func (CreateAwsKmsEcdhKeyringInput_CreateAwsKmsEcdhKeyringInput) isCreateAwsKmsEcdhKeyringInput() {}
  1615  
  1616  func (CompanionStruct_CreateAwsKmsEcdhKeyringInput_) Create_CreateAwsKmsEcdhKeyringInput_(KeyAgreementScheme KmsEcdhStaticConfigurations, CurveSpec m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec, KmsClient m_ComAmazonawsKmsTypes.IKMSClient, GrantTokens m_Wrappers.Option) CreateAwsKmsEcdhKeyringInput {
  1617  	return CreateAwsKmsEcdhKeyringInput{CreateAwsKmsEcdhKeyringInput_CreateAwsKmsEcdhKeyringInput{KeyAgreementScheme, CurveSpec, KmsClient, GrantTokens}}
  1618  }
  1619  
  1620  func (_this CreateAwsKmsEcdhKeyringInput) Is_CreateAwsKmsEcdhKeyringInput() bool {
  1621  	_, ok := _this.Get_().(CreateAwsKmsEcdhKeyringInput_CreateAwsKmsEcdhKeyringInput)
  1622  	return ok
  1623  }
  1624  
  1625  func (CompanionStruct_CreateAwsKmsEcdhKeyringInput_) Default() CreateAwsKmsEcdhKeyringInput {
  1626  	return Companion_CreateAwsKmsEcdhKeyringInput_.Create_CreateAwsKmsEcdhKeyringInput_(Companion_KmsEcdhStaticConfigurations_.Default(), m_AwsCryptographyPrimitivesTypes.Companion_ECDHCurveSpec_.Default(), (m_ComAmazonawsKmsTypes.IKMSClient)(nil), m_Wrappers.Companion_Option_.Default())
  1627  }
  1628  
  1629  func (_this CreateAwsKmsEcdhKeyringInput) Dtor_KeyAgreementScheme() KmsEcdhStaticConfigurations {
  1630  	return _this.Get_().(CreateAwsKmsEcdhKeyringInput_CreateAwsKmsEcdhKeyringInput).KeyAgreementScheme
  1631  }
  1632  
  1633  func (_this CreateAwsKmsEcdhKeyringInput) Dtor_curveSpec() m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec {
  1634  	return _this.Get_().(CreateAwsKmsEcdhKeyringInput_CreateAwsKmsEcdhKeyringInput).CurveSpec
  1635  }
  1636  
  1637  func (_this CreateAwsKmsEcdhKeyringInput) Dtor_kmsClient() m_ComAmazonawsKmsTypes.IKMSClient {
  1638  	return _this.Get_().(CreateAwsKmsEcdhKeyringInput_CreateAwsKmsEcdhKeyringInput).KmsClient
  1639  }
  1640  
  1641  func (_this CreateAwsKmsEcdhKeyringInput) Dtor_grantTokens() m_Wrappers.Option {
  1642  	return _this.Get_().(CreateAwsKmsEcdhKeyringInput_CreateAwsKmsEcdhKeyringInput).GrantTokens
  1643  }
  1644  
  1645  func (_this CreateAwsKmsEcdhKeyringInput) String() string {
  1646  	switch data := _this.Get_().(type) {
  1647  	case nil:
  1648  		return "null"
  1649  	case CreateAwsKmsEcdhKeyringInput_CreateAwsKmsEcdhKeyringInput:
  1650  		{
  1651  			return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsEcdhKeyringInput.CreateAwsKmsEcdhKeyringInput" + "(" + _dafny.String(data.KeyAgreementScheme) + ", " + _dafny.String(data.CurveSpec) + ", " + _dafny.String(data.KmsClient) + ", " + _dafny.String(data.GrantTokens) + ")"
  1652  		}
  1653  	default:
  1654  		{
  1655  			return "<unexpected>"
  1656  		}
  1657  	}
  1658  }
  1659  
  1660  func (_this CreateAwsKmsEcdhKeyringInput) Equals(other CreateAwsKmsEcdhKeyringInput) bool {
  1661  	switch data1 := _this.Get_().(type) {
  1662  	case CreateAwsKmsEcdhKeyringInput_CreateAwsKmsEcdhKeyringInput:
  1663  		{
  1664  			data2, ok := other.Get_().(CreateAwsKmsEcdhKeyringInput_CreateAwsKmsEcdhKeyringInput)
  1665  			return ok && data1.KeyAgreementScheme.Equals(data2.KeyAgreementScheme) && data1.CurveSpec.Equals(data2.CurveSpec) && _dafny.AreEqual(data1.KmsClient, data2.KmsClient) && data1.GrantTokens.Equals(data2.GrantTokens)
  1666  		}
  1667  	default:
  1668  		{
  1669  			return false // unexpected
  1670  		}
  1671  	}
  1672  }
  1673  
  1674  func (_this CreateAwsKmsEcdhKeyringInput) EqualsGeneric(other interface{}) bool {
  1675  	typed, ok := other.(CreateAwsKmsEcdhKeyringInput)
  1676  	return ok && _this.Equals(typed)
  1677  }
  1678  
  1679  func Type_CreateAwsKmsEcdhKeyringInput_() _dafny.TypeDescriptor {
  1680  	return type_CreateAwsKmsEcdhKeyringInput_{}
  1681  }
  1682  
  1683  type type_CreateAwsKmsEcdhKeyringInput_ struct {
  1684  }
  1685  
  1686  func (_this type_CreateAwsKmsEcdhKeyringInput_) Default() interface{} {
  1687  	return Companion_CreateAwsKmsEcdhKeyringInput_.Default()
  1688  }
  1689  
  1690  func (_this type_CreateAwsKmsEcdhKeyringInput_) String() string {
  1691  	return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsEcdhKeyringInput"
  1692  }
  1693  func (_this CreateAwsKmsEcdhKeyringInput) ParentTraits_() []*_dafny.TraitID {
  1694  	return [](*_dafny.TraitID){}
  1695  }
  1696  
  1697  var _ _dafny.TraitOffspring = CreateAwsKmsEcdhKeyringInput{}
  1698  
  1699  // End of datatype CreateAwsKmsEcdhKeyringInput
  1700  
  1701  // Definition of datatype CreateAwsKmsHierarchicalKeyringInput
  1702  type CreateAwsKmsHierarchicalKeyringInput struct {
  1703  	Data_CreateAwsKmsHierarchicalKeyringInput_
  1704  }
  1705  
  1706  func (_this CreateAwsKmsHierarchicalKeyringInput) Get_() Data_CreateAwsKmsHierarchicalKeyringInput_ {
  1707  	return _this.Data_CreateAwsKmsHierarchicalKeyringInput_
  1708  }
  1709  
  1710  type Data_CreateAwsKmsHierarchicalKeyringInput_ interface {
  1711  	isCreateAwsKmsHierarchicalKeyringInput()
  1712  }
  1713  
  1714  type CompanionStruct_CreateAwsKmsHierarchicalKeyringInput_ struct {
  1715  }
  1716  
  1717  var Companion_CreateAwsKmsHierarchicalKeyringInput_ = CompanionStruct_CreateAwsKmsHierarchicalKeyringInput_{}
  1718  
  1719  type CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput struct {
  1720  	BranchKeyId         m_Wrappers.Option
  1721  	BranchKeyIdSupplier m_Wrappers.Option
  1722  	KeyStore            m_AwsCryptographyKeyStoreTypes.IKeyStoreClient
  1723  	TtlSeconds          int64
  1724  	Cache               m_Wrappers.Option
  1725  	PartitionId         m_Wrappers.Option
  1726  }
  1727  
  1728  func (CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput) isCreateAwsKmsHierarchicalKeyringInput() {
  1729  }
  1730  
  1731  func (CompanionStruct_CreateAwsKmsHierarchicalKeyringInput_) Create_CreateAwsKmsHierarchicalKeyringInput_(BranchKeyId m_Wrappers.Option, BranchKeyIdSupplier m_Wrappers.Option, KeyStore m_AwsCryptographyKeyStoreTypes.IKeyStoreClient, TtlSeconds int64, Cache m_Wrappers.Option, PartitionId m_Wrappers.Option) CreateAwsKmsHierarchicalKeyringInput {
  1732  	return CreateAwsKmsHierarchicalKeyringInput{CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput{BranchKeyId, BranchKeyIdSupplier, KeyStore, TtlSeconds, Cache, PartitionId}}
  1733  }
  1734  
  1735  func (_this CreateAwsKmsHierarchicalKeyringInput) Is_CreateAwsKmsHierarchicalKeyringInput() bool {
  1736  	_, ok := _this.Get_().(CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput)
  1737  	return ok
  1738  }
  1739  
  1740  func (CompanionStruct_CreateAwsKmsHierarchicalKeyringInput_) Default() CreateAwsKmsHierarchicalKeyringInput {
  1741  	return Companion_CreateAwsKmsHierarchicalKeyringInput_.Create_CreateAwsKmsHierarchicalKeyringInput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), (m_AwsCryptographyKeyStoreTypes.IKeyStoreClient)(nil), int64(0), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default())
  1742  }
  1743  
  1744  func (_this CreateAwsKmsHierarchicalKeyringInput) Dtor_branchKeyId() m_Wrappers.Option {
  1745  	return _this.Get_().(CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput).BranchKeyId
  1746  }
  1747  
  1748  func (_this CreateAwsKmsHierarchicalKeyringInput) Dtor_branchKeyIdSupplier() m_Wrappers.Option {
  1749  	return _this.Get_().(CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput).BranchKeyIdSupplier
  1750  }
  1751  
  1752  func (_this CreateAwsKmsHierarchicalKeyringInput) Dtor_keyStore() m_AwsCryptographyKeyStoreTypes.IKeyStoreClient {
  1753  	return _this.Get_().(CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput).KeyStore
  1754  }
  1755  
  1756  func (_this CreateAwsKmsHierarchicalKeyringInput) Dtor_ttlSeconds() int64 {
  1757  	return _this.Get_().(CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput).TtlSeconds
  1758  }
  1759  
  1760  func (_this CreateAwsKmsHierarchicalKeyringInput) Dtor_cache() m_Wrappers.Option {
  1761  	return _this.Get_().(CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput).Cache
  1762  }
  1763  
  1764  func (_this CreateAwsKmsHierarchicalKeyringInput) Dtor_partitionId() m_Wrappers.Option {
  1765  	return _this.Get_().(CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput).PartitionId
  1766  }
  1767  
  1768  func (_this CreateAwsKmsHierarchicalKeyringInput) String() string {
  1769  	switch data := _this.Get_().(type) {
  1770  	case nil:
  1771  		return "null"
  1772  	case CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput:
  1773  		{
  1774  			return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsHierarchicalKeyringInput.CreateAwsKmsHierarchicalKeyringInput" + "(" + _dafny.String(data.BranchKeyId) + ", " + _dafny.String(data.BranchKeyIdSupplier) + ", " + _dafny.String(data.KeyStore) + ", " + _dafny.String(data.TtlSeconds) + ", " + _dafny.String(data.Cache) + ", " + _dafny.String(data.PartitionId) + ")"
  1775  		}
  1776  	default:
  1777  		{
  1778  			return "<unexpected>"
  1779  		}
  1780  	}
  1781  }
  1782  
  1783  func (_this CreateAwsKmsHierarchicalKeyringInput) Equals(other CreateAwsKmsHierarchicalKeyringInput) bool {
  1784  	switch data1 := _this.Get_().(type) {
  1785  	case CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput:
  1786  		{
  1787  			data2, ok := other.Get_().(CreateAwsKmsHierarchicalKeyringInput_CreateAwsKmsHierarchicalKeyringInput)
  1788  			return ok && data1.BranchKeyId.Equals(data2.BranchKeyId) && data1.BranchKeyIdSupplier.Equals(data2.BranchKeyIdSupplier) && _dafny.AreEqual(data1.KeyStore, data2.KeyStore) && data1.TtlSeconds == data2.TtlSeconds && data1.Cache.Equals(data2.Cache) && data1.PartitionId.Equals(data2.PartitionId)
  1789  		}
  1790  	default:
  1791  		{
  1792  			return false // unexpected
  1793  		}
  1794  	}
  1795  }
  1796  
  1797  func (_this CreateAwsKmsHierarchicalKeyringInput) EqualsGeneric(other interface{}) bool {
  1798  	typed, ok := other.(CreateAwsKmsHierarchicalKeyringInput)
  1799  	return ok && _this.Equals(typed)
  1800  }
  1801  
  1802  func Type_CreateAwsKmsHierarchicalKeyringInput_() _dafny.TypeDescriptor {
  1803  	return type_CreateAwsKmsHierarchicalKeyringInput_{}
  1804  }
  1805  
  1806  type type_CreateAwsKmsHierarchicalKeyringInput_ struct {
  1807  }
  1808  
  1809  func (_this type_CreateAwsKmsHierarchicalKeyringInput_) Default() interface{} {
  1810  	return Companion_CreateAwsKmsHierarchicalKeyringInput_.Default()
  1811  }
  1812  
  1813  func (_this type_CreateAwsKmsHierarchicalKeyringInput_) String() string {
  1814  	return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsHierarchicalKeyringInput"
  1815  }
  1816  func (_this CreateAwsKmsHierarchicalKeyringInput) ParentTraits_() []*_dafny.TraitID {
  1817  	return [](*_dafny.TraitID){}
  1818  }
  1819  
  1820  var _ _dafny.TraitOffspring = CreateAwsKmsHierarchicalKeyringInput{}
  1821  
  1822  // End of datatype CreateAwsKmsHierarchicalKeyringInput
  1823  
  1824  // Definition of datatype CreateAwsKmsKeyringInput
  1825  type CreateAwsKmsKeyringInput struct {
  1826  	Data_CreateAwsKmsKeyringInput_
  1827  }
  1828  
  1829  func (_this CreateAwsKmsKeyringInput) Get_() Data_CreateAwsKmsKeyringInput_ {
  1830  	return _this.Data_CreateAwsKmsKeyringInput_
  1831  }
  1832  
  1833  type Data_CreateAwsKmsKeyringInput_ interface {
  1834  	isCreateAwsKmsKeyringInput()
  1835  }
  1836  
  1837  type CompanionStruct_CreateAwsKmsKeyringInput_ struct {
  1838  }
  1839  
  1840  var Companion_CreateAwsKmsKeyringInput_ = CompanionStruct_CreateAwsKmsKeyringInput_{}
  1841  
  1842  type CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput struct {
  1843  	KmsKeyId    _dafny.Sequence
  1844  	KmsClient   m_ComAmazonawsKmsTypes.IKMSClient
  1845  	GrantTokens m_Wrappers.Option
  1846  }
  1847  
  1848  func (CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput) isCreateAwsKmsKeyringInput() {}
  1849  
  1850  func (CompanionStruct_CreateAwsKmsKeyringInput_) Create_CreateAwsKmsKeyringInput_(KmsKeyId _dafny.Sequence, KmsClient m_ComAmazonawsKmsTypes.IKMSClient, GrantTokens m_Wrappers.Option) CreateAwsKmsKeyringInput {
  1851  	return CreateAwsKmsKeyringInput{CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput{KmsKeyId, KmsClient, GrantTokens}}
  1852  }
  1853  
  1854  func (_this CreateAwsKmsKeyringInput) Is_CreateAwsKmsKeyringInput() bool {
  1855  	_, ok := _this.Get_().(CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput)
  1856  	return ok
  1857  }
  1858  
  1859  func (CompanionStruct_CreateAwsKmsKeyringInput_) Default() CreateAwsKmsKeyringInput {
  1860  	return Companion_CreateAwsKmsKeyringInput_.Create_CreateAwsKmsKeyringInput_(_dafny.EmptySeq.SetString(), (m_ComAmazonawsKmsTypes.IKMSClient)(nil), m_Wrappers.Companion_Option_.Default())
  1861  }
  1862  
  1863  func (_this CreateAwsKmsKeyringInput) Dtor_kmsKeyId() _dafny.Sequence {
  1864  	return _this.Get_().(CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput).KmsKeyId
  1865  }
  1866  
  1867  func (_this CreateAwsKmsKeyringInput) Dtor_kmsClient() m_ComAmazonawsKmsTypes.IKMSClient {
  1868  	return _this.Get_().(CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput).KmsClient
  1869  }
  1870  
  1871  func (_this CreateAwsKmsKeyringInput) Dtor_grantTokens() m_Wrappers.Option {
  1872  	return _this.Get_().(CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput).GrantTokens
  1873  }
  1874  
  1875  func (_this CreateAwsKmsKeyringInput) String() string {
  1876  	switch data := _this.Get_().(type) {
  1877  	case nil:
  1878  		return "null"
  1879  	case CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput:
  1880  		{
  1881  			return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsKeyringInput.CreateAwsKmsKeyringInput" + "(" + _dafny.String(data.KmsKeyId) + ", " + _dafny.String(data.KmsClient) + ", " + _dafny.String(data.GrantTokens) + ")"
  1882  		}
  1883  	default:
  1884  		{
  1885  			return "<unexpected>"
  1886  		}
  1887  	}
  1888  }
  1889  
  1890  func (_this CreateAwsKmsKeyringInput) Equals(other CreateAwsKmsKeyringInput) bool {
  1891  	switch data1 := _this.Get_().(type) {
  1892  	case CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput:
  1893  		{
  1894  			data2, ok := other.Get_().(CreateAwsKmsKeyringInput_CreateAwsKmsKeyringInput)
  1895  			return ok && data1.KmsKeyId.Equals(data2.KmsKeyId) && _dafny.AreEqual(data1.KmsClient, data2.KmsClient) && data1.GrantTokens.Equals(data2.GrantTokens)
  1896  		}
  1897  	default:
  1898  		{
  1899  			return false // unexpected
  1900  		}
  1901  	}
  1902  }
  1903  
  1904  func (_this CreateAwsKmsKeyringInput) EqualsGeneric(other interface{}) bool {
  1905  	typed, ok := other.(CreateAwsKmsKeyringInput)
  1906  	return ok && _this.Equals(typed)
  1907  }
  1908  
  1909  func Type_CreateAwsKmsKeyringInput_() _dafny.TypeDescriptor {
  1910  	return type_CreateAwsKmsKeyringInput_{}
  1911  }
  1912  
  1913  type type_CreateAwsKmsKeyringInput_ struct {
  1914  }
  1915  
  1916  func (_this type_CreateAwsKmsKeyringInput_) Default() interface{} {
  1917  	return Companion_CreateAwsKmsKeyringInput_.Default()
  1918  }
  1919  
  1920  func (_this type_CreateAwsKmsKeyringInput_) String() string {
  1921  	return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsKeyringInput"
  1922  }
  1923  func (_this CreateAwsKmsKeyringInput) ParentTraits_() []*_dafny.TraitID {
  1924  	return [](*_dafny.TraitID){}
  1925  }
  1926  
  1927  var _ _dafny.TraitOffspring = CreateAwsKmsKeyringInput{}
  1928  
  1929  // End of datatype CreateAwsKmsKeyringInput
  1930  
  1931  // Definition of datatype CreateAwsKmsMrkDiscoveryKeyringInput
  1932  type CreateAwsKmsMrkDiscoveryKeyringInput struct {
  1933  	Data_CreateAwsKmsMrkDiscoveryKeyringInput_
  1934  }
  1935  
  1936  func (_this CreateAwsKmsMrkDiscoveryKeyringInput) Get_() Data_CreateAwsKmsMrkDiscoveryKeyringInput_ {
  1937  	return _this.Data_CreateAwsKmsMrkDiscoveryKeyringInput_
  1938  }
  1939  
  1940  type Data_CreateAwsKmsMrkDiscoveryKeyringInput_ interface {
  1941  	isCreateAwsKmsMrkDiscoveryKeyringInput()
  1942  }
  1943  
  1944  type CompanionStruct_CreateAwsKmsMrkDiscoveryKeyringInput_ struct {
  1945  }
  1946  
  1947  var Companion_CreateAwsKmsMrkDiscoveryKeyringInput_ = CompanionStruct_CreateAwsKmsMrkDiscoveryKeyringInput_{}
  1948  
  1949  type CreateAwsKmsMrkDiscoveryKeyringInput_CreateAwsKmsMrkDiscoveryKeyringInput struct {
  1950  	KmsClient       m_ComAmazonawsKmsTypes.IKMSClient
  1951  	DiscoveryFilter m_Wrappers.Option
  1952  	GrantTokens     m_Wrappers.Option
  1953  	Region          _dafny.Sequence
  1954  }
  1955  
  1956  func (CreateAwsKmsMrkDiscoveryKeyringInput_CreateAwsKmsMrkDiscoveryKeyringInput) isCreateAwsKmsMrkDiscoveryKeyringInput() {
  1957  }
  1958  
  1959  func (CompanionStruct_CreateAwsKmsMrkDiscoveryKeyringInput_) Create_CreateAwsKmsMrkDiscoveryKeyringInput_(KmsClient m_ComAmazonawsKmsTypes.IKMSClient, DiscoveryFilter m_Wrappers.Option, GrantTokens m_Wrappers.Option, Region _dafny.Sequence) CreateAwsKmsMrkDiscoveryKeyringInput {
  1960  	return CreateAwsKmsMrkDiscoveryKeyringInput{CreateAwsKmsMrkDiscoveryKeyringInput_CreateAwsKmsMrkDiscoveryKeyringInput{KmsClient, DiscoveryFilter, GrantTokens, Region}}
  1961  }
  1962  
  1963  func (_this CreateAwsKmsMrkDiscoveryKeyringInput) Is_CreateAwsKmsMrkDiscoveryKeyringInput() bool {
  1964  	_, ok := _this.Get_().(CreateAwsKmsMrkDiscoveryKeyringInput_CreateAwsKmsMrkDiscoveryKeyringInput)
  1965  	return ok
  1966  }
  1967  
  1968  func (CompanionStruct_CreateAwsKmsMrkDiscoveryKeyringInput_) Default() CreateAwsKmsMrkDiscoveryKeyringInput {
  1969  	return Companion_CreateAwsKmsMrkDiscoveryKeyringInput_.Create_CreateAwsKmsMrkDiscoveryKeyringInput_((m_ComAmazonawsKmsTypes.IKMSClient)(nil), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq.SetString())
  1970  }
  1971  
  1972  func (_this CreateAwsKmsMrkDiscoveryKeyringInput) Dtor_kmsClient() m_ComAmazonawsKmsTypes.IKMSClient {
  1973  	return _this.Get_().(CreateAwsKmsMrkDiscoveryKeyringInput_CreateAwsKmsMrkDiscoveryKeyringInput).KmsClient
  1974  }
  1975  
  1976  func (_this CreateAwsKmsMrkDiscoveryKeyringInput) Dtor_discoveryFilter() m_Wrappers.Option {
  1977  	return _this.Get_().(CreateAwsKmsMrkDiscoveryKeyringInput_CreateAwsKmsMrkDiscoveryKeyringInput).DiscoveryFilter
  1978  }
  1979  
  1980  func (_this CreateAwsKmsMrkDiscoveryKeyringInput) Dtor_grantTokens() m_Wrappers.Option {
  1981  	return _this.Get_().(CreateAwsKmsMrkDiscoveryKeyringInput_CreateAwsKmsMrkDiscoveryKeyringInput).GrantTokens
  1982  }
  1983  
  1984  func (_this CreateAwsKmsMrkDiscoveryKeyringInput) Dtor_region() _dafny.Sequence {
  1985  	return _this.Get_().(CreateAwsKmsMrkDiscoveryKeyringInput_CreateAwsKmsMrkDiscoveryKeyringInput).Region
  1986  }
  1987  
  1988  func (_this CreateAwsKmsMrkDiscoveryKeyringInput) String() string {
  1989  	switch data := _this.Get_().(type) {
  1990  	case nil:
  1991  		return "null"
  1992  	case CreateAwsKmsMrkDiscoveryKeyringInput_CreateAwsKmsMrkDiscoveryKeyringInput:
  1993  		{
  1994  			return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkDiscoveryKeyringInput.CreateAwsKmsMrkDiscoveryKeyringInput" + "(" + _dafny.String(data.KmsClient) + ", " + _dafny.String(data.DiscoveryFilter) + ", " + _dafny.String(data.GrantTokens) + ", " + _dafny.String(data.Region) + ")"
  1995  		}
  1996  	default:
  1997  		{
  1998  			return "<unexpected>"
  1999  		}
  2000  	}
  2001  }
  2002  
  2003  func (_this CreateAwsKmsMrkDiscoveryKeyringInput) Equals(other CreateAwsKmsMrkDiscoveryKeyringInput) bool {
  2004  	switch data1 := _this.Get_().(type) {
  2005  	case CreateAwsKmsMrkDiscoveryKeyringInput_CreateAwsKmsMrkDiscoveryKeyringInput:
  2006  		{
  2007  			data2, ok := other.Get_().(CreateAwsKmsMrkDiscoveryKeyringInput_CreateAwsKmsMrkDiscoveryKeyringInput)
  2008  			return ok && _dafny.AreEqual(data1.KmsClient, data2.KmsClient) && data1.DiscoveryFilter.Equals(data2.DiscoveryFilter) && data1.GrantTokens.Equals(data2.GrantTokens) && data1.Region.Equals(data2.Region)
  2009  		}
  2010  	default:
  2011  		{
  2012  			return false // unexpected
  2013  		}
  2014  	}
  2015  }
  2016  
  2017  func (_this CreateAwsKmsMrkDiscoveryKeyringInput) EqualsGeneric(other interface{}) bool {
  2018  	typed, ok := other.(CreateAwsKmsMrkDiscoveryKeyringInput)
  2019  	return ok && _this.Equals(typed)
  2020  }
  2021  
  2022  func Type_CreateAwsKmsMrkDiscoveryKeyringInput_() _dafny.TypeDescriptor {
  2023  	return type_CreateAwsKmsMrkDiscoveryKeyringInput_{}
  2024  }
  2025  
  2026  type type_CreateAwsKmsMrkDiscoveryKeyringInput_ struct {
  2027  }
  2028  
  2029  func (_this type_CreateAwsKmsMrkDiscoveryKeyringInput_) Default() interface{} {
  2030  	return Companion_CreateAwsKmsMrkDiscoveryKeyringInput_.Default()
  2031  }
  2032  
  2033  func (_this type_CreateAwsKmsMrkDiscoveryKeyringInput_) String() string {
  2034  	return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkDiscoveryKeyringInput"
  2035  }
  2036  func (_this CreateAwsKmsMrkDiscoveryKeyringInput) ParentTraits_() []*_dafny.TraitID {
  2037  	return [](*_dafny.TraitID){}
  2038  }
  2039  
  2040  var _ _dafny.TraitOffspring = CreateAwsKmsMrkDiscoveryKeyringInput{}
  2041  
  2042  // End of datatype CreateAwsKmsMrkDiscoveryKeyringInput
  2043  
  2044  // Definition of datatype CreateAwsKmsMrkDiscoveryMultiKeyringInput
  2045  type CreateAwsKmsMrkDiscoveryMultiKeyringInput struct {
  2046  	Data_CreateAwsKmsMrkDiscoveryMultiKeyringInput_
  2047  }
  2048  
  2049  func (_this CreateAwsKmsMrkDiscoveryMultiKeyringInput) Get_() Data_CreateAwsKmsMrkDiscoveryMultiKeyringInput_ {
  2050  	return _this.Data_CreateAwsKmsMrkDiscoveryMultiKeyringInput_
  2051  }
  2052  
  2053  type Data_CreateAwsKmsMrkDiscoveryMultiKeyringInput_ interface {
  2054  	isCreateAwsKmsMrkDiscoveryMultiKeyringInput()
  2055  }
  2056  
  2057  type CompanionStruct_CreateAwsKmsMrkDiscoveryMultiKeyringInput_ struct {
  2058  }
  2059  
  2060  var Companion_CreateAwsKmsMrkDiscoveryMultiKeyringInput_ = CompanionStruct_CreateAwsKmsMrkDiscoveryMultiKeyringInput_{}
  2061  
  2062  type CreateAwsKmsMrkDiscoveryMultiKeyringInput_CreateAwsKmsMrkDiscoveryMultiKeyringInput struct {
  2063  	Regions         _dafny.Sequence
  2064  	DiscoveryFilter m_Wrappers.Option
  2065  	ClientSupplier  m_Wrappers.Option
  2066  	GrantTokens     m_Wrappers.Option
  2067  }
  2068  
  2069  func (CreateAwsKmsMrkDiscoveryMultiKeyringInput_CreateAwsKmsMrkDiscoveryMultiKeyringInput) isCreateAwsKmsMrkDiscoveryMultiKeyringInput() {
  2070  }
  2071  
  2072  func (CompanionStruct_CreateAwsKmsMrkDiscoveryMultiKeyringInput_) Create_CreateAwsKmsMrkDiscoveryMultiKeyringInput_(Regions _dafny.Sequence, DiscoveryFilter m_Wrappers.Option, ClientSupplier m_Wrappers.Option, GrantTokens m_Wrappers.Option) CreateAwsKmsMrkDiscoveryMultiKeyringInput {
  2073  	return CreateAwsKmsMrkDiscoveryMultiKeyringInput{CreateAwsKmsMrkDiscoveryMultiKeyringInput_CreateAwsKmsMrkDiscoveryMultiKeyringInput{Regions, DiscoveryFilter, ClientSupplier, GrantTokens}}
  2074  }
  2075  
  2076  func (_this CreateAwsKmsMrkDiscoveryMultiKeyringInput) Is_CreateAwsKmsMrkDiscoveryMultiKeyringInput() bool {
  2077  	_, ok := _this.Get_().(CreateAwsKmsMrkDiscoveryMultiKeyringInput_CreateAwsKmsMrkDiscoveryMultiKeyringInput)
  2078  	return ok
  2079  }
  2080  
  2081  func (CompanionStruct_CreateAwsKmsMrkDiscoveryMultiKeyringInput_) Default() CreateAwsKmsMrkDiscoveryMultiKeyringInput {
  2082  	return Companion_CreateAwsKmsMrkDiscoveryMultiKeyringInput_.Create_CreateAwsKmsMrkDiscoveryMultiKeyringInput_(_dafny.EmptySeq, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default())
  2083  }
  2084  
  2085  func (_this CreateAwsKmsMrkDiscoveryMultiKeyringInput) Dtor_regions() _dafny.Sequence {
  2086  	return _this.Get_().(CreateAwsKmsMrkDiscoveryMultiKeyringInput_CreateAwsKmsMrkDiscoveryMultiKeyringInput).Regions
  2087  }
  2088  
  2089  func (_this CreateAwsKmsMrkDiscoveryMultiKeyringInput) Dtor_discoveryFilter() m_Wrappers.Option {
  2090  	return _this.Get_().(CreateAwsKmsMrkDiscoveryMultiKeyringInput_CreateAwsKmsMrkDiscoveryMultiKeyringInput).DiscoveryFilter
  2091  }
  2092  
  2093  func (_this CreateAwsKmsMrkDiscoveryMultiKeyringInput) Dtor_clientSupplier() m_Wrappers.Option {
  2094  	return _this.Get_().(CreateAwsKmsMrkDiscoveryMultiKeyringInput_CreateAwsKmsMrkDiscoveryMultiKeyringInput).ClientSupplier
  2095  }
  2096  
  2097  func (_this CreateAwsKmsMrkDiscoveryMultiKeyringInput) Dtor_grantTokens() m_Wrappers.Option {
  2098  	return _this.Get_().(CreateAwsKmsMrkDiscoveryMultiKeyringInput_CreateAwsKmsMrkDiscoveryMultiKeyringInput).GrantTokens
  2099  }
  2100  
  2101  func (_this CreateAwsKmsMrkDiscoveryMultiKeyringInput) String() string {
  2102  	switch data := _this.Get_().(type) {
  2103  	case nil:
  2104  		return "null"
  2105  	case CreateAwsKmsMrkDiscoveryMultiKeyringInput_CreateAwsKmsMrkDiscoveryMultiKeyringInput:
  2106  		{
  2107  			return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkDiscoveryMultiKeyringInput.CreateAwsKmsMrkDiscoveryMultiKeyringInput" + "(" + _dafny.String(data.Regions) + ", " + _dafny.String(data.DiscoveryFilter) + ", " + _dafny.String(data.ClientSupplier) + ", " + _dafny.String(data.GrantTokens) + ")"
  2108  		}
  2109  	default:
  2110  		{
  2111  			return "<unexpected>"
  2112  		}
  2113  	}
  2114  }
  2115  
  2116  func (_this CreateAwsKmsMrkDiscoveryMultiKeyringInput) Equals(other CreateAwsKmsMrkDiscoveryMultiKeyringInput) bool {
  2117  	switch data1 := _this.Get_().(type) {
  2118  	case CreateAwsKmsMrkDiscoveryMultiKeyringInput_CreateAwsKmsMrkDiscoveryMultiKeyringInput:
  2119  		{
  2120  			data2, ok := other.Get_().(CreateAwsKmsMrkDiscoveryMultiKeyringInput_CreateAwsKmsMrkDiscoveryMultiKeyringInput)
  2121  			return ok && data1.Regions.Equals(data2.Regions) && data1.DiscoveryFilter.Equals(data2.DiscoveryFilter) && data1.ClientSupplier.Equals(data2.ClientSupplier) && data1.GrantTokens.Equals(data2.GrantTokens)
  2122  		}
  2123  	default:
  2124  		{
  2125  			return false // unexpected
  2126  		}
  2127  	}
  2128  }
  2129  
  2130  func (_this CreateAwsKmsMrkDiscoveryMultiKeyringInput) EqualsGeneric(other interface{}) bool {
  2131  	typed, ok := other.(CreateAwsKmsMrkDiscoveryMultiKeyringInput)
  2132  	return ok && _this.Equals(typed)
  2133  }
  2134  
  2135  func Type_CreateAwsKmsMrkDiscoveryMultiKeyringInput_() _dafny.TypeDescriptor {
  2136  	return type_CreateAwsKmsMrkDiscoveryMultiKeyringInput_{}
  2137  }
  2138  
  2139  type type_CreateAwsKmsMrkDiscoveryMultiKeyringInput_ struct {
  2140  }
  2141  
  2142  func (_this type_CreateAwsKmsMrkDiscoveryMultiKeyringInput_) Default() interface{} {
  2143  	return Companion_CreateAwsKmsMrkDiscoveryMultiKeyringInput_.Default()
  2144  }
  2145  
  2146  func (_this type_CreateAwsKmsMrkDiscoveryMultiKeyringInput_) String() string {
  2147  	return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkDiscoveryMultiKeyringInput"
  2148  }
  2149  func (_this CreateAwsKmsMrkDiscoveryMultiKeyringInput) ParentTraits_() []*_dafny.TraitID {
  2150  	return [](*_dafny.TraitID){}
  2151  }
  2152  
  2153  var _ _dafny.TraitOffspring = CreateAwsKmsMrkDiscoveryMultiKeyringInput{}
  2154  
  2155  // End of datatype CreateAwsKmsMrkDiscoveryMultiKeyringInput
  2156  
  2157  // Definition of datatype CreateAwsKmsMrkKeyringInput
  2158  type CreateAwsKmsMrkKeyringInput struct {
  2159  	Data_CreateAwsKmsMrkKeyringInput_
  2160  }
  2161  
  2162  func (_this CreateAwsKmsMrkKeyringInput) Get_() Data_CreateAwsKmsMrkKeyringInput_ {
  2163  	return _this.Data_CreateAwsKmsMrkKeyringInput_
  2164  }
  2165  
  2166  type Data_CreateAwsKmsMrkKeyringInput_ interface {
  2167  	isCreateAwsKmsMrkKeyringInput()
  2168  }
  2169  
  2170  type CompanionStruct_CreateAwsKmsMrkKeyringInput_ struct {
  2171  }
  2172  
  2173  var Companion_CreateAwsKmsMrkKeyringInput_ = CompanionStruct_CreateAwsKmsMrkKeyringInput_{}
  2174  
  2175  type CreateAwsKmsMrkKeyringInput_CreateAwsKmsMrkKeyringInput struct {
  2176  	KmsKeyId    _dafny.Sequence
  2177  	KmsClient   m_ComAmazonawsKmsTypes.IKMSClient
  2178  	GrantTokens m_Wrappers.Option
  2179  }
  2180  
  2181  func (CreateAwsKmsMrkKeyringInput_CreateAwsKmsMrkKeyringInput) isCreateAwsKmsMrkKeyringInput() {}
  2182  
  2183  func (CompanionStruct_CreateAwsKmsMrkKeyringInput_) Create_CreateAwsKmsMrkKeyringInput_(KmsKeyId _dafny.Sequence, KmsClient m_ComAmazonawsKmsTypes.IKMSClient, GrantTokens m_Wrappers.Option) CreateAwsKmsMrkKeyringInput {
  2184  	return CreateAwsKmsMrkKeyringInput{CreateAwsKmsMrkKeyringInput_CreateAwsKmsMrkKeyringInput{KmsKeyId, KmsClient, GrantTokens}}
  2185  }
  2186  
  2187  func (_this CreateAwsKmsMrkKeyringInput) Is_CreateAwsKmsMrkKeyringInput() bool {
  2188  	_, ok := _this.Get_().(CreateAwsKmsMrkKeyringInput_CreateAwsKmsMrkKeyringInput)
  2189  	return ok
  2190  }
  2191  
  2192  func (CompanionStruct_CreateAwsKmsMrkKeyringInput_) Default() CreateAwsKmsMrkKeyringInput {
  2193  	return Companion_CreateAwsKmsMrkKeyringInput_.Create_CreateAwsKmsMrkKeyringInput_(_dafny.EmptySeq.SetString(), (m_ComAmazonawsKmsTypes.IKMSClient)(nil), m_Wrappers.Companion_Option_.Default())
  2194  }
  2195  
  2196  func (_this CreateAwsKmsMrkKeyringInput) Dtor_kmsKeyId() _dafny.Sequence {
  2197  	return _this.Get_().(CreateAwsKmsMrkKeyringInput_CreateAwsKmsMrkKeyringInput).KmsKeyId
  2198  }
  2199  
  2200  func (_this CreateAwsKmsMrkKeyringInput) Dtor_kmsClient() m_ComAmazonawsKmsTypes.IKMSClient {
  2201  	return _this.Get_().(CreateAwsKmsMrkKeyringInput_CreateAwsKmsMrkKeyringInput).KmsClient
  2202  }
  2203  
  2204  func (_this CreateAwsKmsMrkKeyringInput) Dtor_grantTokens() m_Wrappers.Option {
  2205  	return _this.Get_().(CreateAwsKmsMrkKeyringInput_CreateAwsKmsMrkKeyringInput).GrantTokens
  2206  }
  2207  
  2208  func (_this CreateAwsKmsMrkKeyringInput) String() string {
  2209  	switch data := _this.Get_().(type) {
  2210  	case nil:
  2211  		return "null"
  2212  	case CreateAwsKmsMrkKeyringInput_CreateAwsKmsMrkKeyringInput:
  2213  		{
  2214  			return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkKeyringInput.CreateAwsKmsMrkKeyringInput" + "(" + _dafny.String(data.KmsKeyId) + ", " + _dafny.String(data.KmsClient) + ", " + _dafny.String(data.GrantTokens) + ")"
  2215  		}
  2216  	default:
  2217  		{
  2218  			return "<unexpected>"
  2219  		}
  2220  	}
  2221  }
  2222  
  2223  func (_this CreateAwsKmsMrkKeyringInput) Equals(other CreateAwsKmsMrkKeyringInput) bool {
  2224  	switch data1 := _this.Get_().(type) {
  2225  	case CreateAwsKmsMrkKeyringInput_CreateAwsKmsMrkKeyringInput:
  2226  		{
  2227  			data2, ok := other.Get_().(CreateAwsKmsMrkKeyringInput_CreateAwsKmsMrkKeyringInput)
  2228  			return ok && data1.KmsKeyId.Equals(data2.KmsKeyId) && _dafny.AreEqual(data1.KmsClient, data2.KmsClient) && data1.GrantTokens.Equals(data2.GrantTokens)
  2229  		}
  2230  	default:
  2231  		{
  2232  			return false // unexpected
  2233  		}
  2234  	}
  2235  }
  2236  
  2237  func (_this CreateAwsKmsMrkKeyringInput) EqualsGeneric(other interface{}) bool {
  2238  	typed, ok := other.(CreateAwsKmsMrkKeyringInput)
  2239  	return ok && _this.Equals(typed)
  2240  }
  2241  
  2242  func Type_CreateAwsKmsMrkKeyringInput_() _dafny.TypeDescriptor {
  2243  	return type_CreateAwsKmsMrkKeyringInput_{}
  2244  }
  2245  
  2246  type type_CreateAwsKmsMrkKeyringInput_ struct {
  2247  }
  2248  
  2249  func (_this type_CreateAwsKmsMrkKeyringInput_) Default() interface{} {
  2250  	return Companion_CreateAwsKmsMrkKeyringInput_.Default()
  2251  }
  2252  
  2253  func (_this type_CreateAwsKmsMrkKeyringInput_) String() string {
  2254  	return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkKeyringInput"
  2255  }
  2256  func (_this CreateAwsKmsMrkKeyringInput) ParentTraits_() []*_dafny.TraitID {
  2257  	return [](*_dafny.TraitID){}
  2258  }
  2259  
  2260  var _ _dafny.TraitOffspring = CreateAwsKmsMrkKeyringInput{}
  2261  
  2262  // End of datatype CreateAwsKmsMrkKeyringInput
  2263  
  2264  // Definition of datatype CreateAwsKmsMrkMultiKeyringInput
  2265  type CreateAwsKmsMrkMultiKeyringInput struct {
  2266  	Data_CreateAwsKmsMrkMultiKeyringInput_
  2267  }
  2268  
  2269  func (_this CreateAwsKmsMrkMultiKeyringInput) Get_() Data_CreateAwsKmsMrkMultiKeyringInput_ {
  2270  	return _this.Data_CreateAwsKmsMrkMultiKeyringInput_
  2271  }
  2272  
  2273  type Data_CreateAwsKmsMrkMultiKeyringInput_ interface {
  2274  	isCreateAwsKmsMrkMultiKeyringInput()
  2275  }
  2276  
  2277  type CompanionStruct_CreateAwsKmsMrkMultiKeyringInput_ struct {
  2278  }
  2279  
  2280  var Companion_CreateAwsKmsMrkMultiKeyringInput_ = CompanionStruct_CreateAwsKmsMrkMultiKeyringInput_{}
  2281  
  2282  type CreateAwsKmsMrkMultiKeyringInput_CreateAwsKmsMrkMultiKeyringInput struct {
  2283  	Generator      m_Wrappers.Option
  2284  	KmsKeyIds      m_Wrappers.Option
  2285  	ClientSupplier m_Wrappers.Option
  2286  	GrantTokens    m_Wrappers.Option
  2287  }
  2288  
  2289  func (CreateAwsKmsMrkMultiKeyringInput_CreateAwsKmsMrkMultiKeyringInput) isCreateAwsKmsMrkMultiKeyringInput() {
  2290  }
  2291  
  2292  func (CompanionStruct_CreateAwsKmsMrkMultiKeyringInput_) Create_CreateAwsKmsMrkMultiKeyringInput_(Generator m_Wrappers.Option, KmsKeyIds m_Wrappers.Option, ClientSupplier m_Wrappers.Option, GrantTokens m_Wrappers.Option) CreateAwsKmsMrkMultiKeyringInput {
  2293  	return CreateAwsKmsMrkMultiKeyringInput{CreateAwsKmsMrkMultiKeyringInput_CreateAwsKmsMrkMultiKeyringInput{Generator, KmsKeyIds, ClientSupplier, GrantTokens}}
  2294  }
  2295  
  2296  func (_this CreateAwsKmsMrkMultiKeyringInput) Is_CreateAwsKmsMrkMultiKeyringInput() bool {
  2297  	_, ok := _this.Get_().(CreateAwsKmsMrkMultiKeyringInput_CreateAwsKmsMrkMultiKeyringInput)
  2298  	return ok
  2299  }
  2300  
  2301  func (CompanionStruct_CreateAwsKmsMrkMultiKeyringInput_) Default() CreateAwsKmsMrkMultiKeyringInput {
  2302  	return Companion_CreateAwsKmsMrkMultiKeyringInput_.Create_CreateAwsKmsMrkMultiKeyringInput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default())
  2303  }
  2304  
  2305  func (_this CreateAwsKmsMrkMultiKeyringInput) Dtor_generator() m_Wrappers.Option {
  2306  	return _this.Get_().(CreateAwsKmsMrkMultiKeyringInput_CreateAwsKmsMrkMultiKeyringInput).Generator
  2307  }
  2308  
  2309  func (_this CreateAwsKmsMrkMultiKeyringInput) Dtor_kmsKeyIds() m_Wrappers.Option {
  2310  	return _this.Get_().(CreateAwsKmsMrkMultiKeyringInput_CreateAwsKmsMrkMultiKeyringInput).KmsKeyIds
  2311  }
  2312  
  2313  func (_this CreateAwsKmsMrkMultiKeyringInput) Dtor_clientSupplier() m_Wrappers.Option {
  2314  	return _this.Get_().(CreateAwsKmsMrkMultiKeyringInput_CreateAwsKmsMrkMultiKeyringInput).ClientSupplier
  2315  }
  2316  
  2317  func (_this CreateAwsKmsMrkMultiKeyringInput) Dtor_grantTokens() m_Wrappers.Option {
  2318  	return _this.Get_().(CreateAwsKmsMrkMultiKeyringInput_CreateAwsKmsMrkMultiKeyringInput).GrantTokens
  2319  }
  2320  
  2321  func (_this CreateAwsKmsMrkMultiKeyringInput) String() string {
  2322  	switch data := _this.Get_().(type) {
  2323  	case nil:
  2324  		return "null"
  2325  	case CreateAwsKmsMrkMultiKeyringInput_CreateAwsKmsMrkMultiKeyringInput:
  2326  		{
  2327  			return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkMultiKeyringInput.CreateAwsKmsMrkMultiKeyringInput" + "(" + _dafny.String(data.Generator) + ", " + _dafny.String(data.KmsKeyIds) + ", " + _dafny.String(data.ClientSupplier) + ", " + _dafny.String(data.GrantTokens) + ")"
  2328  		}
  2329  	default:
  2330  		{
  2331  			return "<unexpected>"
  2332  		}
  2333  	}
  2334  }
  2335  
  2336  func (_this CreateAwsKmsMrkMultiKeyringInput) Equals(other CreateAwsKmsMrkMultiKeyringInput) bool {
  2337  	switch data1 := _this.Get_().(type) {
  2338  	case CreateAwsKmsMrkMultiKeyringInput_CreateAwsKmsMrkMultiKeyringInput:
  2339  		{
  2340  			data2, ok := other.Get_().(CreateAwsKmsMrkMultiKeyringInput_CreateAwsKmsMrkMultiKeyringInput)
  2341  			return ok && data1.Generator.Equals(data2.Generator) && data1.KmsKeyIds.Equals(data2.KmsKeyIds) && data1.ClientSupplier.Equals(data2.ClientSupplier) && data1.GrantTokens.Equals(data2.GrantTokens)
  2342  		}
  2343  	default:
  2344  		{
  2345  			return false // unexpected
  2346  		}
  2347  	}
  2348  }
  2349  
  2350  func (_this CreateAwsKmsMrkMultiKeyringInput) EqualsGeneric(other interface{}) bool {
  2351  	typed, ok := other.(CreateAwsKmsMrkMultiKeyringInput)
  2352  	return ok && _this.Equals(typed)
  2353  }
  2354  
  2355  func Type_CreateAwsKmsMrkMultiKeyringInput_() _dafny.TypeDescriptor {
  2356  	return type_CreateAwsKmsMrkMultiKeyringInput_{}
  2357  }
  2358  
  2359  type type_CreateAwsKmsMrkMultiKeyringInput_ struct {
  2360  }
  2361  
  2362  func (_this type_CreateAwsKmsMrkMultiKeyringInput_) Default() interface{} {
  2363  	return Companion_CreateAwsKmsMrkMultiKeyringInput_.Default()
  2364  }
  2365  
  2366  func (_this type_CreateAwsKmsMrkMultiKeyringInput_) String() string {
  2367  	return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMrkMultiKeyringInput"
  2368  }
  2369  func (_this CreateAwsKmsMrkMultiKeyringInput) ParentTraits_() []*_dafny.TraitID {
  2370  	return [](*_dafny.TraitID){}
  2371  }
  2372  
  2373  var _ _dafny.TraitOffspring = CreateAwsKmsMrkMultiKeyringInput{}
  2374  
  2375  // End of datatype CreateAwsKmsMrkMultiKeyringInput
  2376  
  2377  // Definition of datatype CreateAwsKmsMultiKeyringInput
  2378  type CreateAwsKmsMultiKeyringInput struct {
  2379  	Data_CreateAwsKmsMultiKeyringInput_
  2380  }
  2381  
  2382  func (_this CreateAwsKmsMultiKeyringInput) Get_() Data_CreateAwsKmsMultiKeyringInput_ {
  2383  	return _this.Data_CreateAwsKmsMultiKeyringInput_
  2384  }
  2385  
  2386  type Data_CreateAwsKmsMultiKeyringInput_ interface {
  2387  	isCreateAwsKmsMultiKeyringInput()
  2388  }
  2389  
  2390  type CompanionStruct_CreateAwsKmsMultiKeyringInput_ struct {
  2391  }
  2392  
  2393  var Companion_CreateAwsKmsMultiKeyringInput_ = CompanionStruct_CreateAwsKmsMultiKeyringInput_{}
  2394  
  2395  type CreateAwsKmsMultiKeyringInput_CreateAwsKmsMultiKeyringInput struct {
  2396  	Generator      m_Wrappers.Option
  2397  	KmsKeyIds      m_Wrappers.Option
  2398  	ClientSupplier m_Wrappers.Option
  2399  	GrantTokens    m_Wrappers.Option
  2400  }
  2401  
  2402  func (CreateAwsKmsMultiKeyringInput_CreateAwsKmsMultiKeyringInput) isCreateAwsKmsMultiKeyringInput() {
  2403  }
  2404  
  2405  func (CompanionStruct_CreateAwsKmsMultiKeyringInput_) Create_CreateAwsKmsMultiKeyringInput_(Generator m_Wrappers.Option, KmsKeyIds m_Wrappers.Option, ClientSupplier m_Wrappers.Option, GrantTokens m_Wrappers.Option) CreateAwsKmsMultiKeyringInput {
  2406  	return CreateAwsKmsMultiKeyringInput{CreateAwsKmsMultiKeyringInput_CreateAwsKmsMultiKeyringInput{Generator, KmsKeyIds, ClientSupplier, GrantTokens}}
  2407  }
  2408  
  2409  func (_this CreateAwsKmsMultiKeyringInput) Is_CreateAwsKmsMultiKeyringInput() bool {
  2410  	_, ok := _this.Get_().(CreateAwsKmsMultiKeyringInput_CreateAwsKmsMultiKeyringInput)
  2411  	return ok
  2412  }
  2413  
  2414  func (CompanionStruct_CreateAwsKmsMultiKeyringInput_) Default() CreateAwsKmsMultiKeyringInput {
  2415  	return Companion_CreateAwsKmsMultiKeyringInput_.Create_CreateAwsKmsMultiKeyringInput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default())
  2416  }
  2417  
  2418  func (_this CreateAwsKmsMultiKeyringInput) Dtor_generator() m_Wrappers.Option {
  2419  	return _this.Get_().(CreateAwsKmsMultiKeyringInput_CreateAwsKmsMultiKeyringInput).Generator
  2420  }
  2421  
  2422  func (_this CreateAwsKmsMultiKeyringInput) Dtor_kmsKeyIds() m_Wrappers.Option {
  2423  	return _this.Get_().(CreateAwsKmsMultiKeyringInput_CreateAwsKmsMultiKeyringInput).KmsKeyIds
  2424  }
  2425  
  2426  func (_this CreateAwsKmsMultiKeyringInput) Dtor_clientSupplier() m_Wrappers.Option {
  2427  	return _this.Get_().(CreateAwsKmsMultiKeyringInput_CreateAwsKmsMultiKeyringInput).ClientSupplier
  2428  }
  2429  
  2430  func (_this CreateAwsKmsMultiKeyringInput) Dtor_grantTokens() m_Wrappers.Option {
  2431  	return _this.Get_().(CreateAwsKmsMultiKeyringInput_CreateAwsKmsMultiKeyringInput).GrantTokens
  2432  }
  2433  
  2434  func (_this CreateAwsKmsMultiKeyringInput) String() string {
  2435  	switch data := _this.Get_().(type) {
  2436  	case nil:
  2437  		return "null"
  2438  	case CreateAwsKmsMultiKeyringInput_CreateAwsKmsMultiKeyringInput:
  2439  		{
  2440  			return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMultiKeyringInput.CreateAwsKmsMultiKeyringInput" + "(" + _dafny.String(data.Generator) + ", " + _dafny.String(data.KmsKeyIds) + ", " + _dafny.String(data.ClientSupplier) + ", " + _dafny.String(data.GrantTokens) + ")"
  2441  		}
  2442  	default:
  2443  		{
  2444  			return "<unexpected>"
  2445  		}
  2446  	}
  2447  }
  2448  
  2449  func (_this CreateAwsKmsMultiKeyringInput) Equals(other CreateAwsKmsMultiKeyringInput) bool {
  2450  	switch data1 := _this.Get_().(type) {
  2451  	case CreateAwsKmsMultiKeyringInput_CreateAwsKmsMultiKeyringInput:
  2452  		{
  2453  			data2, ok := other.Get_().(CreateAwsKmsMultiKeyringInput_CreateAwsKmsMultiKeyringInput)
  2454  			return ok && data1.Generator.Equals(data2.Generator) && data1.KmsKeyIds.Equals(data2.KmsKeyIds) && data1.ClientSupplier.Equals(data2.ClientSupplier) && data1.GrantTokens.Equals(data2.GrantTokens)
  2455  		}
  2456  	default:
  2457  		{
  2458  			return false // unexpected
  2459  		}
  2460  	}
  2461  }
  2462  
  2463  func (_this CreateAwsKmsMultiKeyringInput) EqualsGeneric(other interface{}) bool {
  2464  	typed, ok := other.(CreateAwsKmsMultiKeyringInput)
  2465  	return ok && _this.Equals(typed)
  2466  }
  2467  
  2468  func Type_CreateAwsKmsMultiKeyringInput_() _dafny.TypeDescriptor {
  2469  	return type_CreateAwsKmsMultiKeyringInput_{}
  2470  }
  2471  
  2472  type type_CreateAwsKmsMultiKeyringInput_ struct {
  2473  }
  2474  
  2475  func (_this type_CreateAwsKmsMultiKeyringInput_) Default() interface{} {
  2476  	return Companion_CreateAwsKmsMultiKeyringInput_.Default()
  2477  }
  2478  
  2479  func (_this type_CreateAwsKmsMultiKeyringInput_) String() string {
  2480  	return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsMultiKeyringInput"
  2481  }
  2482  func (_this CreateAwsKmsMultiKeyringInput) ParentTraits_() []*_dafny.TraitID {
  2483  	return [](*_dafny.TraitID){}
  2484  }
  2485  
  2486  var _ _dafny.TraitOffspring = CreateAwsKmsMultiKeyringInput{}
  2487  
  2488  // End of datatype CreateAwsKmsMultiKeyringInput
  2489  
  2490  // Definition of datatype CreateAwsKmsRsaKeyringInput
  2491  type CreateAwsKmsRsaKeyringInput struct {
  2492  	Data_CreateAwsKmsRsaKeyringInput_
  2493  }
  2494  
  2495  func (_this CreateAwsKmsRsaKeyringInput) Get_() Data_CreateAwsKmsRsaKeyringInput_ {
  2496  	return _this.Data_CreateAwsKmsRsaKeyringInput_
  2497  }
  2498  
  2499  type Data_CreateAwsKmsRsaKeyringInput_ interface {
  2500  	isCreateAwsKmsRsaKeyringInput()
  2501  }
  2502  
  2503  type CompanionStruct_CreateAwsKmsRsaKeyringInput_ struct {
  2504  }
  2505  
  2506  var Companion_CreateAwsKmsRsaKeyringInput_ = CompanionStruct_CreateAwsKmsRsaKeyringInput_{}
  2507  
  2508  type CreateAwsKmsRsaKeyringInput_CreateAwsKmsRsaKeyringInput struct {
  2509  	PublicKey           m_Wrappers.Option
  2510  	KmsKeyId            _dafny.Sequence
  2511  	EncryptionAlgorithm m_ComAmazonawsKmsTypes.EncryptionAlgorithmSpec
  2512  	KmsClient           m_Wrappers.Option
  2513  	GrantTokens         m_Wrappers.Option
  2514  }
  2515  
  2516  func (CreateAwsKmsRsaKeyringInput_CreateAwsKmsRsaKeyringInput) isCreateAwsKmsRsaKeyringInput() {}
  2517  
  2518  func (CompanionStruct_CreateAwsKmsRsaKeyringInput_) Create_CreateAwsKmsRsaKeyringInput_(PublicKey m_Wrappers.Option, KmsKeyId _dafny.Sequence, EncryptionAlgorithm m_ComAmazonawsKmsTypes.EncryptionAlgorithmSpec, KmsClient m_Wrappers.Option, GrantTokens m_Wrappers.Option) CreateAwsKmsRsaKeyringInput {
  2519  	return CreateAwsKmsRsaKeyringInput{CreateAwsKmsRsaKeyringInput_CreateAwsKmsRsaKeyringInput{PublicKey, KmsKeyId, EncryptionAlgorithm, KmsClient, GrantTokens}}
  2520  }
  2521  
  2522  func (_this CreateAwsKmsRsaKeyringInput) Is_CreateAwsKmsRsaKeyringInput() bool {
  2523  	_, ok := _this.Get_().(CreateAwsKmsRsaKeyringInput_CreateAwsKmsRsaKeyringInput)
  2524  	return ok
  2525  }
  2526  
  2527  func (CompanionStruct_CreateAwsKmsRsaKeyringInput_) Default() CreateAwsKmsRsaKeyringInput {
  2528  	return Companion_CreateAwsKmsRsaKeyringInput_.Create_CreateAwsKmsRsaKeyringInput_(m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq.SetString(), m_ComAmazonawsKmsTypes.Companion_EncryptionAlgorithmSpec_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default())
  2529  }
  2530  
  2531  func (_this CreateAwsKmsRsaKeyringInput) Dtor_publicKey() m_Wrappers.Option {
  2532  	return _this.Get_().(CreateAwsKmsRsaKeyringInput_CreateAwsKmsRsaKeyringInput).PublicKey
  2533  }
  2534  
  2535  func (_this CreateAwsKmsRsaKeyringInput) Dtor_kmsKeyId() _dafny.Sequence {
  2536  	return _this.Get_().(CreateAwsKmsRsaKeyringInput_CreateAwsKmsRsaKeyringInput).KmsKeyId
  2537  }
  2538  
  2539  func (_this CreateAwsKmsRsaKeyringInput) Dtor_encryptionAlgorithm() m_ComAmazonawsKmsTypes.EncryptionAlgorithmSpec {
  2540  	return _this.Get_().(CreateAwsKmsRsaKeyringInput_CreateAwsKmsRsaKeyringInput).EncryptionAlgorithm
  2541  }
  2542  
  2543  func (_this CreateAwsKmsRsaKeyringInput) Dtor_kmsClient() m_Wrappers.Option {
  2544  	return _this.Get_().(CreateAwsKmsRsaKeyringInput_CreateAwsKmsRsaKeyringInput).KmsClient
  2545  }
  2546  
  2547  func (_this CreateAwsKmsRsaKeyringInput) Dtor_grantTokens() m_Wrappers.Option {
  2548  	return _this.Get_().(CreateAwsKmsRsaKeyringInput_CreateAwsKmsRsaKeyringInput).GrantTokens
  2549  }
  2550  
  2551  func (_this CreateAwsKmsRsaKeyringInput) String() string {
  2552  	switch data := _this.Get_().(type) {
  2553  	case nil:
  2554  		return "null"
  2555  	case CreateAwsKmsRsaKeyringInput_CreateAwsKmsRsaKeyringInput:
  2556  		{
  2557  			return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsRsaKeyringInput.CreateAwsKmsRsaKeyringInput" + "(" + _dafny.String(data.PublicKey) + ", " + _dafny.String(data.KmsKeyId) + ", " + _dafny.String(data.EncryptionAlgorithm) + ", " + _dafny.String(data.KmsClient) + ", " + _dafny.String(data.GrantTokens) + ")"
  2558  		}
  2559  	default:
  2560  		{
  2561  			return "<unexpected>"
  2562  		}
  2563  	}
  2564  }
  2565  
  2566  func (_this CreateAwsKmsRsaKeyringInput) Equals(other CreateAwsKmsRsaKeyringInput) bool {
  2567  	switch data1 := _this.Get_().(type) {
  2568  	case CreateAwsKmsRsaKeyringInput_CreateAwsKmsRsaKeyringInput:
  2569  		{
  2570  			data2, ok := other.Get_().(CreateAwsKmsRsaKeyringInput_CreateAwsKmsRsaKeyringInput)
  2571  			return ok && data1.PublicKey.Equals(data2.PublicKey) && data1.KmsKeyId.Equals(data2.KmsKeyId) && data1.EncryptionAlgorithm.Equals(data2.EncryptionAlgorithm) && data1.KmsClient.Equals(data2.KmsClient) && data1.GrantTokens.Equals(data2.GrantTokens)
  2572  		}
  2573  	default:
  2574  		{
  2575  			return false // unexpected
  2576  		}
  2577  	}
  2578  }
  2579  
  2580  func (_this CreateAwsKmsRsaKeyringInput) EqualsGeneric(other interface{}) bool {
  2581  	typed, ok := other.(CreateAwsKmsRsaKeyringInput)
  2582  	return ok && _this.Equals(typed)
  2583  }
  2584  
  2585  func Type_CreateAwsKmsRsaKeyringInput_() _dafny.TypeDescriptor {
  2586  	return type_CreateAwsKmsRsaKeyringInput_{}
  2587  }
  2588  
  2589  type type_CreateAwsKmsRsaKeyringInput_ struct {
  2590  }
  2591  
  2592  func (_this type_CreateAwsKmsRsaKeyringInput_) Default() interface{} {
  2593  	return Companion_CreateAwsKmsRsaKeyringInput_.Default()
  2594  }
  2595  
  2596  func (_this type_CreateAwsKmsRsaKeyringInput_) String() string {
  2597  	return "AwsCryptographyMaterialProvidersTypes.CreateAwsKmsRsaKeyringInput"
  2598  }
  2599  func (_this CreateAwsKmsRsaKeyringInput) ParentTraits_() []*_dafny.TraitID {
  2600  	return [](*_dafny.TraitID){}
  2601  }
  2602  
  2603  var _ _dafny.TraitOffspring = CreateAwsKmsRsaKeyringInput{}
  2604  
  2605  // End of datatype CreateAwsKmsRsaKeyringInput
  2606  
  2607  // Definition of datatype CreateCryptographicMaterialsCacheInput
  2608  type CreateCryptographicMaterialsCacheInput struct {
  2609  	Data_CreateCryptographicMaterialsCacheInput_
  2610  }
  2611  
  2612  func (_this CreateCryptographicMaterialsCacheInput) Get_() Data_CreateCryptographicMaterialsCacheInput_ {
  2613  	return _this.Data_CreateCryptographicMaterialsCacheInput_
  2614  }
  2615  
  2616  type Data_CreateCryptographicMaterialsCacheInput_ interface {
  2617  	isCreateCryptographicMaterialsCacheInput()
  2618  }
  2619  
  2620  type CompanionStruct_CreateCryptographicMaterialsCacheInput_ struct {
  2621  }
  2622  
  2623  var Companion_CreateCryptographicMaterialsCacheInput_ = CompanionStruct_CreateCryptographicMaterialsCacheInput_{}
  2624  
  2625  type CreateCryptographicMaterialsCacheInput_CreateCryptographicMaterialsCacheInput struct {
  2626  	Cache CacheType
  2627  }
  2628  
  2629  func (CreateCryptographicMaterialsCacheInput_CreateCryptographicMaterialsCacheInput) isCreateCryptographicMaterialsCacheInput() {
  2630  }
  2631  
  2632  func (CompanionStruct_CreateCryptographicMaterialsCacheInput_) Create_CreateCryptographicMaterialsCacheInput_(Cache CacheType) CreateCryptographicMaterialsCacheInput {
  2633  	return CreateCryptographicMaterialsCacheInput{CreateCryptographicMaterialsCacheInput_CreateCryptographicMaterialsCacheInput{Cache}}
  2634  }
  2635  
  2636  func (_this CreateCryptographicMaterialsCacheInput) Is_CreateCryptographicMaterialsCacheInput() bool {
  2637  	_, ok := _this.Get_().(CreateCryptographicMaterialsCacheInput_CreateCryptographicMaterialsCacheInput)
  2638  	return ok
  2639  }
  2640  
  2641  func (CompanionStruct_CreateCryptographicMaterialsCacheInput_) Default() CreateCryptographicMaterialsCacheInput {
  2642  	return Companion_CreateCryptographicMaterialsCacheInput_.Create_CreateCryptographicMaterialsCacheInput_(Companion_CacheType_.Default())
  2643  }
  2644  
  2645  func (_this CreateCryptographicMaterialsCacheInput) Dtor_cache() CacheType {
  2646  	return _this.Get_().(CreateCryptographicMaterialsCacheInput_CreateCryptographicMaterialsCacheInput).Cache
  2647  }
  2648  
  2649  func (_this CreateCryptographicMaterialsCacheInput) String() string {
  2650  	switch data := _this.Get_().(type) {
  2651  	case nil:
  2652  		return "null"
  2653  	case CreateCryptographicMaterialsCacheInput_CreateCryptographicMaterialsCacheInput:
  2654  		{
  2655  			return "AwsCryptographyMaterialProvidersTypes.CreateCryptographicMaterialsCacheInput.CreateCryptographicMaterialsCacheInput" + "(" + _dafny.String(data.Cache) + ")"
  2656  		}
  2657  	default:
  2658  		{
  2659  			return "<unexpected>"
  2660  		}
  2661  	}
  2662  }
  2663  
  2664  func (_this CreateCryptographicMaterialsCacheInput) Equals(other CreateCryptographicMaterialsCacheInput) bool {
  2665  	switch data1 := _this.Get_().(type) {
  2666  	case CreateCryptographicMaterialsCacheInput_CreateCryptographicMaterialsCacheInput:
  2667  		{
  2668  			data2, ok := other.Get_().(CreateCryptographicMaterialsCacheInput_CreateCryptographicMaterialsCacheInput)
  2669  			return ok && data1.Cache.Equals(data2.Cache)
  2670  		}
  2671  	default:
  2672  		{
  2673  			return false // unexpected
  2674  		}
  2675  	}
  2676  }
  2677  
  2678  func (_this CreateCryptographicMaterialsCacheInput) EqualsGeneric(other interface{}) bool {
  2679  	typed, ok := other.(CreateCryptographicMaterialsCacheInput)
  2680  	return ok && _this.Equals(typed)
  2681  }
  2682  
  2683  func Type_CreateCryptographicMaterialsCacheInput_() _dafny.TypeDescriptor {
  2684  	return type_CreateCryptographicMaterialsCacheInput_{}
  2685  }
  2686  
  2687  type type_CreateCryptographicMaterialsCacheInput_ struct {
  2688  }
  2689  
  2690  func (_this type_CreateCryptographicMaterialsCacheInput_) Default() interface{} {
  2691  	return Companion_CreateCryptographicMaterialsCacheInput_.Default()
  2692  }
  2693  
  2694  func (_this type_CreateCryptographicMaterialsCacheInput_) String() string {
  2695  	return "AwsCryptographyMaterialProvidersTypes.CreateCryptographicMaterialsCacheInput"
  2696  }
  2697  func (_this CreateCryptographicMaterialsCacheInput) ParentTraits_() []*_dafny.TraitID {
  2698  	return [](*_dafny.TraitID){}
  2699  }
  2700  
  2701  var _ _dafny.TraitOffspring = CreateCryptographicMaterialsCacheInput{}
  2702  
  2703  // End of datatype CreateCryptographicMaterialsCacheInput
  2704  
  2705  // Definition of datatype CreateDefaultClientSupplierInput
  2706  type CreateDefaultClientSupplierInput struct {
  2707  	Data_CreateDefaultClientSupplierInput_
  2708  }
  2709  
  2710  func (_this CreateDefaultClientSupplierInput) Get_() Data_CreateDefaultClientSupplierInput_ {
  2711  	return _this.Data_CreateDefaultClientSupplierInput_
  2712  }
  2713  
  2714  type Data_CreateDefaultClientSupplierInput_ interface {
  2715  	isCreateDefaultClientSupplierInput()
  2716  }
  2717  
  2718  type CompanionStruct_CreateDefaultClientSupplierInput_ struct {
  2719  }
  2720  
  2721  var Companion_CreateDefaultClientSupplierInput_ = CompanionStruct_CreateDefaultClientSupplierInput_{}
  2722  
  2723  type CreateDefaultClientSupplierInput_CreateDefaultClientSupplierInput struct {
  2724  }
  2725  
  2726  func (CreateDefaultClientSupplierInput_CreateDefaultClientSupplierInput) isCreateDefaultClientSupplierInput() {
  2727  }
  2728  
  2729  func (CompanionStruct_CreateDefaultClientSupplierInput_) Create_CreateDefaultClientSupplierInput_() CreateDefaultClientSupplierInput {
  2730  	return CreateDefaultClientSupplierInput{CreateDefaultClientSupplierInput_CreateDefaultClientSupplierInput{}}
  2731  }
  2732  
  2733  func (_this CreateDefaultClientSupplierInput) Is_CreateDefaultClientSupplierInput() bool {
  2734  	_, ok := _this.Get_().(CreateDefaultClientSupplierInput_CreateDefaultClientSupplierInput)
  2735  	return ok
  2736  }
  2737  
  2738  func (CompanionStruct_CreateDefaultClientSupplierInput_) Default() CreateDefaultClientSupplierInput {
  2739  	return Companion_CreateDefaultClientSupplierInput_.Create_CreateDefaultClientSupplierInput_()
  2740  }
  2741  
  2742  func (_ CompanionStruct_CreateDefaultClientSupplierInput_) AllSingletonConstructors() _dafny.Iterator {
  2743  	i := -1
  2744  	return func() (interface{}, bool) {
  2745  		i++
  2746  		switch i {
  2747  		case 0:
  2748  			return Companion_CreateDefaultClientSupplierInput_.Create_CreateDefaultClientSupplierInput_(), true
  2749  		default:
  2750  			return CreateDefaultClientSupplierInput{}, false
  2751  		}
  2752  	}
  2753  }
  2754  
  2755  func (_this CreateDefaultClientSupplierInput) String() string {
  2756  	switch _this.Get_().(type) {
  2757  	case nil:
  2758  		return "null"
  2759  	case CreateDefaultClientSupplierInput_CreateDefaultClientSupplierInput:
  2760  		{
  2761  			return "AwsCryptographyMaterialProvidersTypes.CreateDefaultClientSupplierInput.CreateDefaultClientSupplierInput"
  2762  		}
  2763  	default:
  2764  		{
  2765  			return "<unexpected>"
  2766  		}
  2767  	}
  2768  }
  2769  
  2770  func (_this CreateDefaultClientSupplierInput) Equals(other CreateDefaultClientSupplierInput) bool {
  2771  	switch _this.Get_().(type) {
  2772  	case CreateDefaultClientSupplierInput_CreateDefaultClientSupplierInput:
  2773  		{
  2774  			_, ok := other.Get_().(CreateDefaultClientSupplierInput_CreateDefaultClientSupplierInput)
  2775  			return ok
  2776  		}
  2777  	default:
  2778  		{
  2779  			return false // unexpected
  2780  		}
  2781  	}
  2782  }
  2783  
  2784  func (_this CreateDefaultClientSupplierInput) EqualsGeneric(other interface{}) bool {
  2785  	typed, ok := other.(CreateDefaultClientSupplierInput)
  2786  	return ok && _this.Equals(typed)
  2787  }
  2788  
  2789  func Type_CreateDefaultClientSupplierInput_() _dafny.TypeDescriptor {
  2790  	return type_CreateDefaultClientSupplierInput_{}
  2791  }
  2792  
  2793  type type_CreateDefaultClientSupplierInput_ struct {
  2794  }
  2795  
  2796  func (_this type_CreateDefaultClientSupplierInput_) Default() interface{} {
  2797  	return Companion_CreateDefaultClientSupplierInput_.Default()
  2798  }
  2799  
  2800  func (_this type_CreateDefaultClientSupplierInput_) String() string {
  2801  	return "AwsCryptographyMaterialProvidersTypes.CreateDefaultClientSupplierInput"
  2802  }
  2803  func (_this CreateDefaultClientSupplierInput) ParentTraits_() []*_dafny.TraitID {
  2804  	return [](*_dafny.TraitID){}
  2805  }
  2806  
  2807  var _ _dafny.TraitOffspring = CreateDefaultClientSupplierInput{}
  2808  
  2809  // End of datatype CreateDefaultClientSupplierInput
  2810  
  2811  // Definition of datatype CreateDefaultCryptographicMaterialsManagerInput
  2812  type CreateDefaultCryptographicMaterialsManagerInput struct {
  2813  	Data_CreateDefaultCryptographicMaterialsManagerInput_
  2814  }
  2815  
  2816  func (_this CreateDefaultCryptographicMaterialsManagerInput) Get_() Data_CreateDefaultCryptographicMaterialsManagerInput_ {
  2817  	return _this.Data_CreateDefaultCryptographicMaterialsManagerInput_
  2818  }
  2819  
  2820  type Data_CreateDefaultCryptographicMaterialsManagerInput_ interface {
  2821  	isCreateDefaultCryptographicMaterialsManagerInput()
  2822  }
  2823  
  2824  type CompanionStruct_CreateDefaultCryptographicMaterialsManagerInput_ struct {
  2825  }
  2826  
  2827  var Companion_CreateDefaultCryptographicMaterialsManagerInput_ = CompanionStruct_CreateDefaultCryptographicMaterialsManagerInput_{}
  2828  
  2829  type CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput struct {
  2830  	Keyring IKeyring
  2831  }
  2832  
  2833  func (CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput) isCreateDefaultCryptographicMaterialsManagerInput() {
  2834  }
  2835  
  2836  func (CompanionStruct_CreateDefaultCryptographicMaterialsManagerInput_) Create_CreateDefaultCryptographicMaterialsManagerInput_(Keyring IKeyring) CreateDefaultCryptographicMaterialsManagerInput {
  2837  	return CreateDefaultCryptographicMaterialsManagerInput{CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput{Keyring}}
  2838  }
  2839  
  2840  func (_this CreateDefaultCryptographicMaterialsManagerInput) Is_CreateDefaultCryptographicMaterialsManagerInput() bool {
  2841  	_, ok := _this.Get_().(CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput)
  2842  	return ok
  2843  }
  2844  
  2845  func (CompanionStruct_CreateDefaultCryptographicMaterialsManagerInput_) Default() CreateDefaultCryptographicMaterialsManagerInput {
  2846  	return Companion_CreateDefaultCryptographicMaterialsManagerInput_.Create_CreateDefaultCryptographicMaterialsManagerInput_((IKeyring)(nil))
  2847  }
  2848  
  2849  func (_this CreateDefaultCryptographicMaterialsManagerInput) Dtor_keyring() IKeyring {
  2850  	return _this.Get_().(CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput).Keyring
  2851  }
  2852  
  2853  func (_this CreateDefaultCryptographicMaterialsManagerInput) String() string {
  2854  	switch data := _this.Get_().(type) {
  2855  	case nil:
  2856  		return "null"
  2857  	case CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput:
  2858  		{
  2859  			return "AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput.CreateDefaultCryptographicMaterialsManagerInput" + "(" + _dafny.String(data.Keyring) + ")"
  2860  		}
  2861  	default:
  2862  		{
  2863  			return "<unexpected>"
  2864  		}
  2865  	}
  2866  }
  2867  
  2868  func (_this CreateDefaultCryptographicMaterialsManagerInput) Equals(other CreateDefaultCryptographicMaterialsManagerInput) bool {
  2869  	switch data1 := _this.Get_().(type) {
  2870  	case CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput:
  2871  		{
  2872  			data2, ok := other.Get_().(CreateDefaultCryptographicMaterialsManagerInput_CreateDefaultCryptographicMaterialsManagerInput)
  2873  			return ok && _dafny.AreEqual(data1.Keyring, data2.Keyring)
  2874  		}
  2875  	default:
  2876  		{
  2877  			return false // unexpected
  2878  		}
  2879  	}
  2880  }
  2881  
  2882  func (_this CreateDefaultCryptographicMaterialsManagerInput) EqualsGeneric(other interface{}) bool {
  2883  	typed, ok := other.(CreateDefaultCryptographicMaterialsManagerInput)
  2884  	return ok && _this.Equals(typed)
  2885  }
  2886  
  2887  func Type_CreateDefaultCryptographicMaterialsManagerInput_() _dafny.TypeDescriptor {
  2888  	return type_CreateDefaultCryptographicMaterialsManagerInput_{}
  2889  }
  2890  
  2891  type type_CreateDefaultCryptographicMaterialsManagerInput_ struct {
  2892  }
  2893  
  2894  func (_this type_CreateDefaultCryptographicMaterialsManagerInput_) Default() interface{} {
  2895  	return Companion_CreateDefaultCryptographicMaterialsManagerInput_.Default()
  2896  }
  2897  
  2898  func (_this type_CreateDefaultCryptographicMaterialsManagerInput_) String() string {
  2899  	return "AwsCryptographyMaterialProvidersTypes.CreateDefaultCryptographicMaterialsManagerInput"
  2900  }
  2901  func (_this CreateDefaultCryptographicMaterialsManagerInput) ParentTraits_() []*_dafny.TraitID {
  2902  	return [](*_dafny.TraitID){}
  2903  }
  2904  
  2905  var _ _dafny.TraitOffspring = CreateDefaultCryptographicMaterialsManagerInput{}
  2906  
  2907  // End of datatype CreateDefaultCryptographicMaterialsManagerInput
  2908  
  2909  // Definition of datatype CreateMultiKeyringInput
  2910  type CreateMultiKeyringInput struct {
  2911  	Data_CreateMultiKeyringInput_
  2912  }
  2913  
  2914  func (_this CreateMultiKeyringInput) Get_() Data_CreateMultiKeyringInput_ {
  2915  	return _this.Data_CreateMultiKeyringInput_
  2916  }
  2917  
  2918  type Data_CreateMultiKeyringInput_ interface {
  2919  	isCreateMultiKeyringInput()
  2920  }
  2921  
  2922  type CompanionStruct_CreateMultiKeyringInput_ struct {
  2923  }
  2924  
  2925  var Companion_CreateMultiKeyringInput_ = CompanionStruct_CreateMultiKeyringInput_{}
  2926  
  2927  type CreateMultiKeyringInput_CreateMultiKeyringInput struct {
  2928  	Generator     m_Wrappers.Option
  2929  	ChildKeyrings _dafny.Sequence
  2930  }
  2931  
  2932  func (CreateMultiKeyringInput_CreateMultiKeyringInput) isCreateMultiKeyringInput() {}
  2933  
  2934  func (CompanionStruct_CreateMultiKeyringInput_) Create_CreateMultiKeyringInput_(Generator m_Wrappers.Option, ChildKeyrings _dafny.Sequence) CreateMultiKeyringInput {
  2935  	return CreateMultiKeyringInput{CreateMultiKeyringInput_CreateMultiKeyringInput{Generator, ChildKeyrings}}
  2936  }
  2937  
  2938  func (_this CreateMultiKeyringInput) Is_CreateMultiKeyringInput() bool {
  2939  	_, ok := _this.Get_().(CreateMultiKeyringInput_CreateMultiKeyringInput)
  2940  	return ok
  2941  }
  2942  
  2943  func (CompanionStruct_CreateMultiKeyringInput_) Default() CreateMultiKeyringInput {
  2944  	return Companion_CreateMultiKeyringInput_.Create_CreateMultiKeyringInput_(m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq)
  2945  }
  2946  
  2947  func (_this CreateMultiKeyringInput) Dtor_generator() m_Wrappers.Option {
  2948  	return _this.Get_().(CreateMultiKeyringInput_CreateMultiKeyringInput).Generator
  2949  }
  2950  
  2951  func (_this CreateMultiKeyringInput) Dtor_childKeyrings() _dafny.Sequence {
  2952  	return _this.Get_().(CreateMultiKeyringInput_CreateMultiKeyringInput).ChildKeyrings
  2953  }
  2954  
  2955  func (_this CreateMultiKeyringInput) String() string {
  2956  	switch data := _this.Get_().(type) {
  2957  	case nil:
  2958  		return "null"
  2959  	case CreateMultiKeyringInput_CreateMultiKeyringInput:
  2960  		{
  2961  			return "AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput.CreateMultiKeyringInput" + "(" + _dafny.String(data.Generator) + ", " + _dafny.String(data.ChildKeyrings) + ")"
  2962  		}
  2963  	default:
  2964  		{
  2965  			return "<unexpected>"
  2966  		}
  2967  	}
  2968  }
  2969  
  2970  func (_this CreateMultiKeyringInput) Equals(other CreateMultiKeyringInput) bool {
  2971  	switch data1 := _this.Get_().(type) {
  2972  	case CreateMultiKeyringInput_CreateMultiKeyringInput:
  2973  		{
  2974  			data2, ok := other.Get_().(CreateMultiKeyringInput_CreateMultiKeyringInput)
  2975  			return ok && data1.Generator.Equals(data2.Generator) && data1.ChildKeyrings.Equals(data2.ChildKeyrings)
  2976  		}
  2977  	default:
  2978  		{
  2979  			return false // unexpected
  2980  		}
  2981  	}
  2982  }
  2983  
  2984  func (_this CreateMultiKeyringInput) EqualsGeneric(other interface{}) bool {
  2985  	typed, ok := other.(CreateMultiKeyringInput)
  2986  	return ok && _this.Equals(typed)
  2987  }
  2988  
  2989  func Type_CreateMultiKeyringInput_() _dafny.TypeDescriptor {
  2990  	return type_CreateMultiKeyringInput_{}
  2991  }
  2992  
  2993  type type_CreateMultiKeyringInput_ struct {
  2994  }
  2995  
  2996  func (_this type_CreateMultiKeyringInput_) Default() interface{} {
  2997  	return Companion_CreateMultiKeyringInput_.Default()
  2998  }
  2999  
  3000  func (_this type_CreateMultiKeyringInput_) String() string {
  3001  	return "AwsCryptographyMaterialProvidersTypes.CreateMultiKeyringInput"
  3002  }
  3003  func (_this CreateMultiKeyringInput) ParentTraits_() []*_dafny.TraitID {
  3004  	return [](*_dafny.TraitID){}
  3005  }
  3006  
  3007  var _ _dafny.TraitOffspring = CreateMultiKeyringInput{}
  3008  
  3009  // End of datatype CreateMultiKeyringInput
  3010  
  3011  // Definition of datatype CreateRawAesKeyringInput
  3012  type CreateRawAesKeyringInput struct {
  3013  	Data_CreateRawAesKeyringInput_
  3014  }
  3015  
  3016  func (_this CreateRawAesKeyringInput) Get_() Data_CreateRawAesKeyringInput_ {
  3017  	return _this.Data_CreateRawAesKeyringInput_
  3018  }
  3019  
  3020  type Data_CreateRawAesKeyringInput_ interface {
  3021  	isCreateRawAesKeyringInput()
  3022  }
  3023  
  3024  type CompanionStruct_CreateRawAesKeyringInput_ struct {
  3025  }
  3026  
  3027  var Companion_CreateRawAesKeyringInput_ = CompanionStruct_CreateRawAesKeyringInput_{}
  3028  
  3029  type CreateRawAesKeyringInput_CreateRawAesKeyringInput struct {
  3030  	KeyNamespace _dafny.Sequence
  3031  	KeyName      _dafny.Sequence
  3032  	WrappingKey  _dafny.Sequence
  3033  	WrappingAlg  AesWrappingAlg
  3034  }
  3035  
  3036  func (CreateRawAesKeyringInput_CreateRawAesKeyringInput) isCreateRawAesKeyringInput() {}
  3037  
  3038  func (CompanionStruct_CreateRawAesKeyringInput_) Create_CreateRawAesKeyringInput_(KeyNamespace _dafny.Sequence, KeyName _dafny.Sequence, WrappingKey _dafny.Sequence, WrappingAlg AesWrappingAlg) CreateRawAesKeyringInput {
  3039  	return CreateRawAesKeyringInput{CreateRawAesKeyringInput_CreateRawAesKeyringInput{KeyNamespace, KeyName, WrappingKey, WrappingAlg}}
  3040  }
  3041  
  3042  func (_this CreateRawAesKeyringInput) Is_CreateRawAesKeyringInput() bool {
  3043  	_, ok := _this.Get_().(CreateRawAesKeyringInput_CreateRawAesKeyringInput)
  3044  	return ok
  3045  }
  3046  
  3047  func (CompanionStruct_CreateRawAesKeyringInput_) Default() CreateRawAesKeyringInput {
  3048  	return Companion_CreateRawAesKeyringInput_.Create_CreateRawAesKeyringInput_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), _dafny.EmptySeq, Companion_AesWrappingAlg_.Default())
  3049  }
  3050  
  3051  func (_this CreateRawAesKeyringInput) Dtor_keyNamespace() _dafny.Sequence {
  3052  	return _this.Get_().(CreateRawAesKeyringInput_CreateRawAesKeyringInput).KeyNamespace
  3053  }
  3054  
  3055  func (_this CreateRawAesKeyringInput) Dtor_keyName() _dafny.Sequence {
  3056  	return _this.Get_().(CreateRawAesKeyringInput_CreateRawAesKeyringInput).KeyName
  3057  }
  3058  
  3059  func (_this CreateRawAesKeyringInput) Dtor_wrappingKey() _dafny.Sequence {
  3060  	return _this.Get_().(CreateRawAesKeyringInput_CreateRawAesKeyringInput).WrappingKey
  3061  }
  3062  
  3063  func (_this CreateRawAesKeyringInput) Dtor_wrappingAlg() AesWrappingAlg {
  3064  	return _this.Get_().(CreateRawAesKeyringInput_CreateRawAesKeyringInput).WrappingAlg
  3065  }
  3066  
  3067  func (_this CreateRawAesKeyringInput) String() string {
  3068  	switch data := _this.Get_().(type) {
  3069  	case nil:
  3070  		return "null"
  3071  	case CreateRawAesKeyringInput_CreateRawAesKeyringInput:
  3072  		{
  3073  			return "AwsCryptographyMaterialProvidersTypes.CreateRawAesKeyringInput.CreateRawAesKeyringInput" + "(" + _dafny.String(data.KeyNamespace) + ", " + _dafny.String(data.KeyName) + ", " + _dafny.String(data.WrappingKey) + ", " + _dafny.String(data.WrappingAlg) + ")"
  3074  		}
  3075  	default:
  3076  		{
  3077  			return "<unexpected>"
  3078  		}
  3079  	}
  3080  }
  3081  
  3082  func (_this CreateRawAesKeyringInput) Equals(other CreateRawAesKeyringInput) bool {
  3083  	switch data1 := _this.Get_().(type) {
  3084  	case CreateRawAesKeyringInput_CreateRawAesKeyringInput:
  3085  		{
  3086  			data2, ok := other.Get_().(CreateRawAesKeyringInput_CreateRawAesKeyringInput)
  3087  			return ok && data1.KeyNamespace.Equals(data2.KeyNamespace) && data1.KeyName.Equals(data2.KeyName) && data1.WrappingKey.Equals(data2.WrappingKey) && data1.WrappingAlg.Equals(data2.WrappingAlg)
  3088  		}
  3089  	default:
  3090  		{
  3091  			return false // unexpected
  3092  		}
  3093  	}
  3094  }
  3095  
  3096  func (_this CreateRawAesKeyringInput) EqualsGeneric(other interface{}) bool {
  3097  	typed, ok := other.(CreateRawAesKeyringInput)
  3098  	return ok && _this.Equals(typed)
  3099  }
  3100  
  3101  func Type_CreateRawAesKeyringInput_() _dafny.TypeDescriptor {
  3102  	return type_CreateRawAesKeyringInput_{}
  3103  }
  3104  
  3105  type type_CreateRawAesKeyringInput_ struct {
  3106  }
  3107  
  3108  func (_this type_CreateRawAesKeyringInput_) Default() interface{} {
  3109  	return Companion_CreateRawAesKeyringInput_.Default()
  3110  }
  3111  
  3112  func (_this type_CreateRawAesKeyringInput_) String() string {
  3113  	return "AwsCryptographyMaterialProvidersTypes.CreateRawAesKeyringInput"
  3114  }
  3115  func (_this CreateRawAesKeyringInput) ParentTraits_() []*_dafny.TraitID {
  3116  	return [](*_dafny.TraitID){}
  3117  }
  3118  
  3119  var _ _dafny.TraitOffspring = CreateRawAesKeyringInput{}
  3120  
  3121  // End of datatype CreateRawAesKeyringInput
  3122  
  3123  // Definition of datatype CreateRawEcdhKeyringInput
  3124  type CreateRawEcdhKeyringInput struct {
  3125  	Data_CreateRawEcdhKeyringInput_
  3126  }
  3127  
  3128  func (_this CreateRawEcdhKeyringInput) Get_() Data_CreateRawEcdhKeyringInput_ {
  3129  	return _this.Data_CreateRawEcdhKeyringInput_
  3130  }
  3131  
  3132  type Data_CreateRawEcdhKeyringInput_ interface {
  3133  	isCreateRawEcdhKeyringInput()
  3134  }
  3135  
  3136  type CompanionStruct_CreateRawEcdhKeyringInput_ struct {
  3137  }
  3138  
  3139  var Companion_CreateRawEcdhKeyringInput_ = CompanionStruct_CreateRawEcdhKeyringInput_{}
  3140  
  3141  type CreateRawEcdhKeyringInput_CreateRawEcdhKeyringInput struct {
  3142  	KeyAgreementScheme RawEcdhStaticConfigurations
  3143  	CurveSpec          m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec
  3144  }
  3145  
  3146  func (CreateRawEcdhKeyringInput_CreateRawEcdhKeyringInput) isCreateRawEcdhKeyringInput() {}
  3147  
  3148  func (CompanionStruct_CreateRawEcdhKeyringInput_) Create_CreateRawEcdhKeyringInput_(KeyAgreementScheme RawEcdhStaticConfigurations, CurveSpec m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec) CreateRawEcdhKeyringInput {
  3149  	return CreateRawEcdhKeyringInput{CreateRawEcdhKeyringInput_CreateRawEcdhKeyringInput{KeyAgreementScheme, CurveSpec}}
  3150  }
  3151  
  3152  func (_this CreateRawEcdhKeyringInput) Is_CreateRawEcdhKeyringInput() bool {
  3153  	_, ok := _this.Get_().(CreateRawEcdhKeyringInput_CreateRawEcdhKeyringInput)
  3154  	return ok
  3155  }
  3156  
  3157  func (CompanionStruct_CreateRawEcdhKeyringInput_) Default() CreateRawEcdhKeyringInput {
  3158  	return Companion_CreateRawEcdhKeyringInput_.Create_CreateRawEcdhKeyringInput_(Companion_RawEcdhStaticConfigurations_.Default(), m_AwsCryptographyPrimitivesTypes.Companion_ECDHCurveSpec_.Default())
  3159  }
  3160  
  3161  func (_this CreateRawEcdhKeyringInput) Dtor_KeyAgreementScheme() RawEcdhStaticConfigurations {
  3162  	return _this.Get_().(CreateRawEcdhKeyringInput_CreateRawEcdhKeyringInput).KeyAgreementScheme
  3163  }
  3164  
  3165  func (_this CreateRawEcdhKeyringInput) Dtor_curveSpec() m_AwsCryptographyPrimitivesTypes.ECDHCurveSpec {
  3166  	return _this.Get_().(CreateRawEcdhKeyringInput_CreateRawEcdhKeyringInput).CurveSpec
  3167  }
  3168  
  3169  func (_this CreateRawEcdhKeyringInput) String() string {
  3170  	switch data := _this.Get_().(type) {
  3171  	case nil:
  3172  		return "null"
  3173  	case CreateRawEcdhKeyringInput_CreateRawEcdhKeyringInput:
  3174  		{
  3175  			return "AwsCryptographyMaterialProvidersTypes.CreateRawEcdhKeyringInput.CreateRawEcdhKeyringInput" + "(" + _dafny.String(data.KeyAgreementScheme) + ", " + _dafny.String(data.CurveSpec) + ")"
  3176  		}
  3177  	default:
  3178  		{
  3179  			return "<unexpected>"
  3180  		}
  3181  	}
  3182  }
  3183  
  3184  func (_this CreateRawEcdhKeyringInput) Equals(other CreateRawEcdhKeyringInput) bool {
  3185  	switch data1 := _this.Get_().(type) {
  3186  	case CreateRawEcdhKeyringInput_CreateRawEcdhKeyringInput:
  3187  		{
  3188  			data2, ok := other.Get_().(CreateRawEcdhKeyringInput_CreateRawEcdhKeyringInput)
  3189  			return ok && data1.KeyAgreementScheme.Equals(data2.KeyAgreementScheme) && data1.CurveSpec.Equals(data2.CurveSpec)
  3190  		}
  3191  	default:
  3192  		{
  3193  			return false // unexpected
  3194  		}
  3195  	}
  3196  }
  3197  
  3198  func (_this CreateRawEcdhKeyringInput) EqualsGeneric(other interface{}) bool {
  3199  	typed, ok := other.(CreateRawEcdhKeyringInput)
  3200  	return ok && _this.Equals(typed)
  3201  }
  3202  
  3203  func Type_CreateRawEcdhKeyringInput_() _dafny.TypeDescriptor {
  3204  	return type_CreateRawEcdhKeyringInput_{}
  3205  }
  3206  
  3207  type type_CreateRawEcdhKeyringInput_ struct {
  3208  }
  3209  
  3210  func (_this type_CreateRawEcdhKeyringInput_) Default() interface{} {
  3211  	return Companion_CreateRawEcdhKeyringInput_.Default()
  3212  }
  3213  
  3214  func (_this type_CreateRawEcdhKeyringInput_) String() string {
  3215  	return "AwsCryptographyMaterialProvidersTypes.CreateRawEcdhKeyringInput"
  3216  }
  3217  func (_this CreateRawEcdhKeyringInput) ParentTraits_() []*_dafny.TraitID {
  3218  	return [](*_dafny.TraitID){}
  3219  }
  3220  
  3221  var _ _dafny.TraitOffspring = CreateRawEcdhKeyringInput{}
  3222  
  3223  // End of datatype CreateRawEcdhKeyringInput
  3224  
  3225  // Definition of datatype CreateRawRsaKeyringInput
  3226  type CreateRawRsaKeyringInput struct {
  3227  	Data_CreateRawRsaKeyringInput_
  3228  }
  3229  
  3230  func (_this CreateRawRsaKeyringInput) Get_() Data_CreateRawRsaKeyringInput_ {
  3231  	return _this.Data_CreateRawRsaKeyringInput_
  3232  }
  3233  
  3234  type Data_CreateRawRsaKeyringInput_ interface {
  3235  	isCreateRawRsaKeyringInput()
  3236  }
  3237  
  3238  type CompanionStruct_CreateRawRsaKeyringInput_ struct {
  3239  }
  3240  
  3241  var Companion_CreateRawRsaKeyringInput_ = CompanionStruct_CreateRawRsaKeyringInput_{}
  3242  
  3243  type CreateRawRsaKeyringInput_CreateRawRsaKeyringInput struct {
  3244  	KeyNamespace  _dafny.Sequence
  3245  	KeyName       _dafny.Sequence
  3246  	PaddingScheme PaddingScheme
  3247  	PublicKey     m_Wrappers.Option
  3248  	PrivateKey    m_Wrappers.Option
  3249  }
  3250  
  3251  func (CreateRawRsaKeyringInput_CreateRawRsaKeyringInput) isCreateRawRsaKeyringInput() {}
  3252  
  3253  func (CompanionStruct_CreateRawRsaKeyringInput_) Create_CreateRawRsaKeyringInput_(KeyNamespace _dafny.Sequence, KeyName _dafny.Sequence, PaddingScheme PaddingScheme, PublicKey m_Wrappers.Option, PrivateKey m_Wrappers.Option) CreateRawRsaKeyringInput {
  3254  	return CreateRawRsaKeyringInput{CreateRawRsaKeyringInput_CreateRawRsaKeyringInput{KeyNamespace, KeyName, PaddingScheme, PublicKey, PrivateKey}}
  3255  }
  3256  
  3257  func (_this CreateRawRsaKeyringInput) Is_CreateRawRsaKeyringInput() bool {
  3258  	_, ok := _this.Get_().(CreateRawRsaKeyringInput_CreateRawRsaKeyringInput)
  3259  	return ok
  3260  }
  3261  
  3262  func (CompanionStruct_CreateRawRsaKeyringInput_) Default() CreateRawRsaKeyringInput {
  3263  	return Companion_CreateRawRsaKeyringInput_.Create_CreateRawRsaKeyringInput_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), Companion_PaddingScheme_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default())
  3264  }
  3265  
  3266  func (_this CreateRawRsaKeyringInput) Dtor_keyNamespace() _dafny.Sequence {
  3267  	return _this.Get_().(CreateRawRsaKeyringInput_CreateRawRsaKeyringInput).KeyNamespace
  3268  }
  3269  
  3270  func (_this CreateRawRsaKeyringInput) Dtor_keyName() _dafny.Sequence {
  3271  	return _this.Get_().(CreateRawRsaKeyringInput_CreateRawRsaKeyringInput).KeyName
  3272  }
  3273  
  3274  func (_this CreateRawRsaKeyringInput) Dtor_paddingScheme() PaddingScheme {
  3275  	return _this.Get_().(CreateRawRsaKeyringInput_CreateRawRsaKeyringInput).PaddingScheme
  3276  }
  3277  
  3278  func (_this CreateRawRsaKeyringInput) Dtor_publicKey() m_Wrappers.Option {
  3279  	return _this.Get_().(CreateRawRsaKeyringInput_CreateRawRsaKeyringInput).PublicKey
  3280  }
  3281  
  3282  func (_this CreateRawRsaKeyringInput) Dtor_privateKey() m_Wrappers.Option {
  3283  	return _this.Get_().(CreateRawRsaKeyringInput_CreateRawRsaKeyringInput).PrivateKey
  3284  }
  3285  
  3286  func (_this CreateRawRsaKeyringInput) String() string {
  3287  	switch data := _this.Get_().(type) {
  3288  	case nil:
  3289  		return "null"
  3290  	case CreateRawRsaKeyringInput_CreateRawRsaKeyringInput:
  3291  		{
  3292  			return "AwsCryptographyMaterialProvidersTypes.CreateRawRsaKeyringInput.CreateRawRsaKeyringInput" + "(" + _dafny.String(data.KeyNamespace) + ", " + _dafny.String(data.KeyName) + ", " + _dafny.String(data.PaddingScheme) + ", " + _dafny.String(data.PublicKey) + ", " + _dafny.String(data.PrivateKey) + ")"
  3293  		}
  3294  	default:
  3295  		{
  3296  			return "<unexpected>"
  3297  		}
  3298  	}
  3299  }
  3300  
  3301  func (_this CreateRawRsaKeyringInput) Equals(other CreateRawRsaKeyringInput) bool {
  3302  	switch data1 := _this.Get_().(type) {
  3303  	case CreateRawRsaKeyringInput_CreateRawRsaKeyringInput:
  3304  		{
  3305  			data2, ok := other.Get_().(CreateRawRsaKeyringInput_CreateRawRsaKeyringInput)
  3306  			return ok && data1.KeyNamespace.Equals(data2.KeyNamespace) && data1.KeyName.Equals(data2.KeyName) && data1.PaddingScheme.Equals(data2.PaddingScheme) && data1.PublicKey.Equals(data2.PublicKey) && data1.PrivateKey.Equals(data2.PrivateKey)
  3307  		}
  3308  	default:
  3309  		{
  3310  			return false // unexpected
  3311  		}
  3312  	}
  3313  }
  3314  
  3315  func (_this CreateRawRsaKeyringInput) EqualsGeneric(other interface{}) bool {
  3316  	typed, ok := other.(CreateRawRsaKeyringInput)
  3317  	return ok && _this.Equals(typed)
  3318  }
  3319  
  3320  func Type_CreateRawRsaKeyringInput_() _dafny.TypeDescriptor {
  3321  	return type_CreateRawRsaKeyringInput_{}
  3322  }
  3323  
  3324  type type_CreateRawRsaKeyringInput_ struct {
  3325  }
  3326  
  3327  func (_this type_CreateRawRsaKeyringInput_) Default() interface{} {
  3328  	return Companion_CreateRawRsaKeyringInput_.Default()
  3329  }
  3330  
  3331  func (_this type_CreateRawRsaKeyringInput_) String() string {
  3332  	return "AwsCryptographyMaterialProvidersTypes.CreateRawRsaKeyringInput"
  3333  }
  3334  func (_this CreateRawRsaKeyringInput) ParentTraits_() []*_dafny.TraitID {
  3335  	return [](*_dafny.TraitID){}
  3336  }
  3337  
  3338  var _ _dafny.TraitOffspring = CreateRawRsaKeyringInput{}
  3339  
  3340  // End of datatype CreateRawRsaKeyringInput
  3341  
  3342  // Definition of datatype CreateRequiredEncryptionContextCMMInput
  3343  type CreateRequiredEncryptionContextCMMInput struct {
  3344  	Data_CreateRequiredEncryptionContextCMMInput_
  3345  }
  3346  
  3347  func (_this CreateRequiredEncryptionContextCMMInput) Get_() Data_CreateRequiredEncryptionContextCMMInput_ {
  3348  	return _this.Data_CreateRequiredEncryptionContextCMMInput_
  3349  }
  3350  
  3351  type Data_CreateRequiredEncryptionContextCMMInput_ interface {
  3352  	isCreateRequiredEncryptionContextCMMInput()
  3353  }
  3354  
  3355  type CompanionStruct_CreateRequiredEncryptionContextCMMInput_ struct {
  3356  }
  3357  
  3358  var Companion_CreateRequiredEncryptionContextCMMInput_ = CompanionStruct_CreateRequiredEncryptionContextCMMInput_{}
  3359  
  3360  type CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput struct {
  3361  	UnderlyingCMM                 m_Wrappers.Option
  3362  	Keyring                       m_Wrappers.Option
  3363  	RequiredEncryptionContextKeys _dafny.Sequence
  3364  }
  3365  
  3366  func (CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput) isCreateRequiredEncryptionContextCMMInput() {
  3367  }
  3368  
  3369  func (CompanionStruct_CreateRequiredEncryptionContextCMMInput_) Create_CreateRequiredEncryptionContextCMMInput_(UnderlyingCMM m_Wrappers.Option, Keyring m_Wrappers.Option, RequiredEncryptionContextKeys _dafny.Sequence) CreateRequiredEncryptionContextCMMInput {
  3370  	return CreateRequiredEncryptionContextCMMInput{CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput{UnderlyingCMM, Keyring, RequiredEncryptionContextKeys}}
  3371  }
  3372  
  3373  func (_this CreateRequiredEncryptionContextCMMInput) Is_CreateRequiredEncryptionContextCMMInput() bool {
  3374  	_, ok := _this.Get_().(CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput)
  3375  	return ok
  3376  }
  3377  
  3378  func (CompanionStruct_CreateRequiredEncryptionContextCMMInput_) Default() CreateRequiredEncryptionContextCMMInput {
  3379  	return Companion_CreateRequiredEncryptionContextCMMInput_.Create_CreateRequiredEncryptionContextCMMInput_(m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq)
  3380  }
  3381  
  3382  func (_this CreateRequiredEncryptionContextCMMInput) Dtor_underlyingCMM() m_Wrappers.Option {
  3383  	return _this.Get_().(CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput).UnderlyingCMM
  3384  }
  3385  
  3386  func (_this CreateRequiredEncryptionContextCMMInput) Dtor_keyring() m_Wrappers.Option {
  3387  	return _this.Get_().(CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput).Keyring
  3388  }
  3389  
  3390  func (_this CreateRequiredEncryptionContextCMMInput) Dtor_requiredEncryptionContextKeys() _dafny.Sequence {
  3391  	return _this.Get_().(CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput).RequiredEncryptionContextKeys
  3392  }
  3393  
  3394  func (_this CreateRequiredEncryptionContextCMMInput) String() string {
  3395  	switch data := _this.Get_().(type) {
  3396  	case nil:
  3397  		return "null"
  3398  	case CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput:
  3399  		{
  3400  			return "AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput.CreateRequiredEncryptionContextCMMInput" + "(" + _dafny.String(data.UnderlyingCMM) + ", " + _dafny.String(data.Keyring) + ", " + _dafny.String(data.RequiredEncryptionContextKeys) + ")"
  3401  		}
  3402  	default:
  3403  		{
  3404  			return "<unexpected>"
  3405  		}
  3406  	}
  3407  }
  3408  
  3409  func (_this CreateRequiredEncryptionContextCMMInput) Equals(other CreateRequiredEncryptionContextCMMInput) bool {
  3410  	switch data1 := _this.Get_().(type) {
  3411  	case CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput:
  3412  		{
  3413  			data2, ok := other.Get_().(CreateRequiredEncryptionContextCMMInput_CreateRequiredEncryptionContextCMMInput)
  3414  			return ok && data1.UnderlyingCMM.Equals(data2.UnderlyingCMM) && data1.Keyring.Equals(data2.Keyring) && data1.RequiredEncryptionContextKeys.Equals(data2.RequiredEncryptionContextKeys)
  3415  		}
  3416  	default:
  3417  		{
  3418  			return false // unexpected
  3419  		}
  3420  	}
  3421  }
  3422  
  3423  func (_this CreateRequiredEncryptionContextCMMInput) EqualsGeneric(other interface{}) bool {
  3424  	typed, ok := other.(CreateRequiredEncryptionContextCMMInput)
  3425  	return ok && _this.Equals(typed)
  3426  }
  3427  
  3428  func Type_CreateRequiredEncryptionContextCMMInput_() _dafny.TypeDescriptor {
  3429  	return type_CreateRequiredEncryptionContextCMMInput_{}
  3430  }
  3431  
  3432  type type_CreateRequiredEncryptionContextCMMInput_ struct {
  3433  }
  3434  
  3435  func (_this type_CreateRequiredEncryptionContextCMMInput_) Default() interface{} {
  3436  	return Companion_CreateRequiredEncryptionContextCMMInput_.Default()
  3437  }
  3438  
  3439  func (_this type_CreateRequiredEncryptionContextCMMInput_) String() string {
  3440  	return "AwsCryptographyMaterialProvidersTypes.CreateRequiredEncryptionContextCMMInput"
  3441  }
  3442  func (_this CreateRequiredEncryptionContextCMMInput) ParentTraits_() []*_dafny.TraitID {
  3443  	return [](*_dafny.TraitID){}
  3444  }
  3445  
  3446  var _ _dafny.TraitOffspring = CreateRequiredEncryptionContextCMMInput{}
  3447  
  3448  // End of datatype CreateRequiredEncryptionContextCMMInput
  3449  
  3450  // Definition of class ICryptographicMaterialsCacheCallHistory
  3451  type ICryptographicMaterialsCacheCallHistory struct {
  3452  	dummy byte
  3453  }
  3454  
  3455  func New_ICryptographicMaterialsCacheCallHistory_() *ICryptographicMaterialsCacheCallHistory {
  3456  	_this := ICryptographicMaterialsCacheCallHistory{}
  3457  
  3458  	return &_this
  3459  }
  3460  
  3461  type CompanionStruct_ICryptographicMaterialsCacheCallHistory_ struct {
  3462  }
  3463  
  3464  var Companion_ICryptographicMaterialsCacheCallHistory_ = CompanionStruct_ICryptographicMaterialsCacheCallHistory_{}
  3465  
  3466  func (_this *ICryptographicMaterialsCacheCallHistory) Equals(other *ICryptographicMaterialsCacheCallHistory) bool {
  3467  	return _this == other
  3468  }
  3469  
  3470  func (_this *ICryptographicMaterialsCacheCallHistory) EqualsGeneric(x interface{}) bool {
  3471  	other, ok := x.(*ICryptographicMaterialsCacheCallHistory)
  3472  	return ok && _this.Equals(other)
  3473  }
  3474  
  3475  func (*ICryptographicMaterialsCacheCallHistory) String() string {
  3476  	return "AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCacheCallHistory"
  3477  }
  3478  
  3479  func Type_ICryptographicMaterialsCacheCallHistory_() _dafny.TypeDescriptor {
  3480  	return type_ICryptographicMaterialsCacheCallHistory_{}
  3481  }
  3482  
  3483  type type_ICryptographicMaterialsCacheCallHistory_ struct {
  3484  }
  3485  
  3486  func (_this type_ICryptographicMaterialsCacheCallHistory_) Default() interface{} {
  3487  	return (*ICryptographicMaterialsCacheCallHistory)(nil)
  3488  }
  3489  
  3490  func (_this type_ICryptographicMaterialsCacheCallHistory_) String() string {
  3491  	return "AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsCacheCallHistory"
  3492  }
  3493  func (_this *ICryptographicMaterialsCacheCallHistory) ParentTraits_() []*_dafny.TraitID {
  3494  	return [](*_dafny.TraitID){}
  3495  }
  3496  
  3497  var _ _dafny.TraitOffspring = &ICryptographicMaterialsCacheCallHistory{}
  3498  
  3499  // End of class ICryptographicMaterialsCacheCallHistory
  3500  
  3501  // Definition of trait ICryptographicMaterialsCache
  3502  type ICryptographicMaterialsCache interface {
  3503  	String() string
  3504  	PutCacheEntry(input PutCacheEntryInput) m_Wrappers.Result
  3505  	PutCacheEntry_k(input PutCacheEntryInput) m_Wrappers.Result
  3506  	UpdateUsageMetadata(input UpdateUsageMetadataInput) m_Wrappers.Result
  3507  	UpdateUsageMetadata_k(input UpdateUsageMetadataInput) m_Wrappers.Result
  3508  	GetCacheEntry(input GetCacheEntryInput) m_Wrappers.Result
  3509  	GetCacheEntry_k(input GetCacheEntryInput) m_Wrappers.Result
  3510  	DeleteCacheEntry(input DeleteCacheEntryInput) m_Wrappers.Result
  3511  	DeleteCacheEntry_k(input DeleteCacheEntryInput) m_Wrappers.Result
  3512  }
  3513  
  3514  func (_static *CompanionStruct_ICryptographicMaterialsCache_) PutCacheEntry(_this ICryptographicMaterialsCache, input PutCacheEntryInput) m_Wrappers.Result {
  3515  	{
  3516  		var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf())
  3517  		_ = output
  3518  		var _out0 m_Wrappers.Result
  3519  		_ = _out0
  3520  		_out0 = (_this).PutCacheEntry_k(input)
  3521  		output = _out0
  3522  		return output
  3523  	}
  3524  }
  3525  func (_static *CompanionStruct_ICryptographicMaterialsCache_) UpdateUsageMetadata(_this ICryptographicMaterialsCache, input UpdateUsageMetadataInput) m_Wrappers.Result {
  3526  	{
  3527  		var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf())
  3528  		_ = output
  3529  		var _out0 m_Wrappers.Result
  3530  		_ = _out0
  3531  		_out0 = (_this).UpdateUsageMetadata_k(input)
  3532  		output = _out0
  3533  		return output
  3534  	}
  3535  }
  3536  func (_static *CompanionStruct_ICryptographicMaterialsCache_) GetCacheEntry(_this ICryptographicMaterialsCache, input GetCacheEntryInput) m_Wrappers.Result {
  3537  	{
  3538  		var output m_Wrappers.Result = m_Wrappers.Result{}
  3539  		_ = output
  3540  		var _out0 m_Wrappers.Result
  3541  		_ = _out0
  3542  		_out0 = (_this).GetCacheEntry_k(input)
  3543  		output = _out0
  3544  		return output
  3545  	}
  3546  }
  3547  func (_static *CompanionStruct_ICryptographicMaterialsCache_) DeleteCacheEntry(_this ICryptographicMaterialsCache, input DeleteCacheEntryInput) m_Wrappers.Result {
  3548  	{
  3549  		var output m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf())
  3550  		_ = output
  3551  		var _out0 m_Wrappers.Result
  3552  		_ = _out0
  3553  		_out0 = (_this).DeleteCacheEntry_k(input)
  3554  		output = _out0
  3555  		return output
  3556  	}
  3557  }
  3558  
  3559  type CompanionStruct_ICryptographicMaterialsCache_ struct {
  3560  	TraitID_ *_dafny.TraitID
  3561  }
  3562  
  3563  var Companion_ICryptographicMaterialsCache_ = CompanionStruct_ICryptographicMaterialsCache_{
  3564  	TraitID_: &_dafny.TraitID{},
  3565  }
  3566  
  3567  func (CompanionStruct_ICryptographicMaterialsCache_) CastTo_(x interface{}) ICryptographicMaterialsCache {
  3568  	var t ICryptographicMaterialsCache
  3569  	t, _ = x.(ICryptographicMaterialsCache)
  3570  	return t
  3571  }
  3572  
  3573  // End of trait ICryptographicMaterialsCache
  3574  
  3575  // Definition of class ICryptographicMaterialsManagerCallHistory
  3576  type ICryptographicMaterialsManagerCallHistory struct {
  3577  	dummy byte
  3578  }
  3579  
  3580  func New_ICryptographicMaterialsManagerCallHistory_() *ICryptographicMaterialsManagerCallHistory {
  3581  	_this := ICryptographicMaterialsManagerCallHistory{}
  3582  
  3583  	return &_this
  3584  }
  3585  
  3586  type CompanionStruct_ICryptographicMaterialsManagerCallHistory_ struct {
  3587  }
  3588  
  3589  var Companion_ICryptographicMaterialsManagerCallHistory_ = CompanionStruct_ICryptographicMaterialsManagerCallHistory_{}
  3590  
  3591  func (_this *ICryptographicMaterialsManagerCallHistory) Equals(other *ICryptographicMaterialsManagerCallHistory) bool {
  3592  	return _this == other
  3593  }
  3594  
  3595  func (_this *ICryptographicMaterialsManagerCallHistory) EqualsGeneric(x interface{}) bool {
  3596  	other, ok := x.(*ICryptographicMaterialsManagerCallHistory)
  3597  	return ok && _this.Equals(other)
  3598  }
  3599  
  3600  func (*ICryptographicMaterialsManagerCallHistory) String() string {
  3601  	return "AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManagerCallHistory"
  3602  }
  3603  
  3604  func Type_ICryptographicMaterialsManagerCallHistory_() _dafny.TypeDescriptor {
  3605  	return type_ICryptographicMaterialsManagerCallHistory_{}
  3606  }
  3607  
  3608  type type_ICryptographicMaterialsManagerCallHistory_ struct {
  3609  }
  3610  
  3611  func (_this type_ICryptographicMaterialsManagerCallHistory_) Default() interface{} {
  3612  	return (*ICryptographicMaterialsManagerCallHistory)(nil)
  3613  }
  3614  
  3615  func (_this type_ICryptographicMaterialsManagerCallHistory_) String() string {
  3616  	return "AwsCryptographyMaterialProvidersTypes.ICryptographicMaterialsManagerCallHistory"
  3617  }
  3618  func (_this *ICryptographicMaterialsManagerCallHistory) ParentTraits_() []*_dafny.TraitID {
  3619  	return [](*_dafny.TraitID){}
  3620  }
  3621  
  3622  var _ _dafny.TraitOffspring = &ICryptographicMaterialsManagerCallHistory{}
  3623  
  3624  // End of class ICryptographicMaterialsManagerCallHistory
  3625  
  3626  // Definition of trait ICryptographicMaterialsManager
  3627  type ICryptographicMaterialsManager interface {
  3628  	String() string
  3629  	GetEncryptionMaterials(input GetEncryptionMaterialsInput) m_Wrappers.Result
  3630  	GetEncryptionMaterials_k(input GetEncryptionMaterialsInput) m_Wrappers.Result
  3631  	DecryptMaterials(input DecryptMaterialsInput) m_Wrappers.Result
  3632  	DecryptMaterials_k(input DecryptMaterialsInput) m_Wrappers.Result
  3633  }
  3634  
  3635  func (_static *CompanionStruct_ICryptographicMaterialsManager_) GetEncryptionMaterials(_this ICryptographicMaterialsManager, input GetEncryptionMaterialsInput) m_Wrappers.Result {
  3636  	{
  3637  		var output m_Wrappers.Result = m_Wrappers.Result{}
  3638  		_ = output
  3639  		var _out0 m_Wrappers.Result
  3640  		_ = _out0
  3641  		_out0 = (_this).GetEncryptionMaterials_k(input)
  3642  		output = _out0
  3643  		return output
  3644  	}
  3645  }
  3646  func (_static *CompanionStruct_ICryptographicMaterialsManager_) DecryptMaterials(_this ICryptographicMaterialsManager, input DecryptMaterialsInput) m_Wrappers.Result {
  3647  	{
  3648  		var output m_Wrappers.Result = m_Wrappers.Result{}
  3649  		_ = output
  3650  		var _out0 m_Wrappers.Result
  3651  		_ = _out0
  3652  		_out0 = (_this).DecryptMaterials_k(input)
  3653  		output = _out0
  3654  		return output
  3655  	}
  3656  }
  3657  
  3658  type CompanionStruct_ICryptographicMaterialsManager_ struct {
  3659  	TraitID_ *_dafny.TraitID
  3660  }
  3661  
  3662  var Companion_ICryptographicMaterialsManager_ = CompanionStruct_ICryptographicMaterialsManager_{
  3663  	TraitID_: &_dafny.TraitID{},
  3664  }
  3665  
  3666  func (CompanionStruct_ICryptographicMaterialsManager_) CastTo_(x interface{}) ICryptographicMaterialsManager {
  3667  	var t ICryptographicMaterialsManager
  3668  	t, _ = x.(ICryptographicMaterialsManager)
  3669  	return t
  3670  }
  3671  
  3672  // End of trait ICryptographicMaterialsManager
  3673  
  3674  // Definition of datatype DBEAlgorithmSuiteId
  3675  type DBEAlgorithmSuiteId struct {
  3676  	Data_DBEAlgorithmSuiteId_
  3677  }
  3678  
  3679  func (_this DBEAlgorithmSuiteId) Get_() Data_DBEAlgorithmSuiteId_ {
  3680  	return _this.Data_DBEAlgorithmSuiteId_
  3681  }
  3682  
  3683  type Data_DBEAlgorithmSuiteId_ interface {
  3684  	isDBEAlgorithmSuiteId()
  3685  }
  3686  
  3687  type CompanionStruct_DBEAlgorithmSuiteId_ struct {
  3688  }
  3689  
  3690  var Companion_DBEAlgorithmSuiteId_ = CompanionStruct_DBEAlgorithmSuiteId_{}
  3691  
  3692  type DBEAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384 struct {
  3693  }
  3694  
  3695  func (DBEAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384) isDBEAlgorithmSuiteId() {
  3696  }
  3697  
  3698  func (CompanionStruct_DBEAlgorithmSuiteId_) Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384_() DBEAlgorithmSuiteId {
  3699  	return DBEAlgorithmSuiteId{DBEAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384{}}
  3700  }
  3701  
  3702  func (_this DBEAlgorithmSuiteId) Is_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384() bool {
  3703  	_, ok := _this.Get_().(DBEAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384)
  3704  	return ok
  3705  }
  3706  
  3707  type DBEAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384__SYMSIG__HMAC__SHA384 struct {
  3708  }
  3709  
  3710  func (DBEAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384__SYMSIG__HMAC__SHA384) isDBEAlgorithmSuiteId() {
  3711  }
  3712  
  3713  func (CompanionStruct_DBEAlgorithmSuiteId_) Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384__SYMSIG__HMAC__SHA384_() DBEAlgorithmSuiteId {
  3714  	return DBEAlgorithmSuiteId{DBEAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384__SYMSIG__HMAC__SHA384{}}
  3715  }
  3716  
  3717  func (_this DBEAlgorithmSuiteId) Is_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384__SYMSIG__HMAC__SHA384() bool {
  3718  	_, ok := _this.Get_().(DBEAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384__SYMSIG__HMAC__SHA384)
  3719  	return ok
  3720  }
  3721  
  3722  func (CompanionStruct_DBEAlgorithmSuiteId_) Default() DBEAlgorithmSuiteId {
  3723  	return Companion_DBEAlgorithmSuiteId_.Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384_()
  3724  }
  3725  
  3726  func (_ CompanionStruct_DBEAlgorithmSuiteId_) AllSingletonConstructors() _dafny.Iterator {
  3727  	i := -1
  3728  	return func() (interface{}, bool) {
  3729  		i++
  3730  		switch i {
  3731  		case 0:
  3732  			return Companion_DBEAlgorithmSuiteId_.Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384_(), true
  3733  		case 1:
  3734  			return Companion_DBEAlgorithmSuiteId_.Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384__SYMSIG__HMAC__SHA384_(), true
  3735  		default:
  3736  			return DBEAlgorithmSuiteId{}, false
  3737  		}
  3738  	}
  3739  }
  3740  
  3741  func (_this DBEAlgorithmSuiteId) String() string {
  3742  	switch _this.Get_().(type) {
  3743  	case nil:
  3744  		return "null"
  3745  	case DBEAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384:
  3746  		{
  3747  			return "AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId.ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY_SYMSIG_HMAC_SHA384"
  3748  		}
  3749  	case DBEAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384__SYMSIG__HMAC__SHA384:
  3750  		{
  3751  			return "AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId.ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY_ECDSA_P384_SYMSIG_HMAC_SHA384"
  3752  		}
  3753  	default:
  3754  		{
  3755  			return "<unexpected>"
  3756  		}
  3757  	}
  3758  }
  3759  
  3760  func (_this DBEAlgorithmSuiteId) Equals(other DBEAlgorithmSuiteId) bool {
  3761  	switch _this.Get_().(type) {
  3762  	case DBEAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384:
  3763  		{
  3764  			_, ok := other.Get_().(DBEAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__SYMSIG__HMAC__SHA384)
  3765  			return ok
  3766  		}
  3767  	case DBEAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384__SYMSIG__HMAC__SHA384:
  3768  		{
  3769  			_, ok := other.Get_().(DBEAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384__SYMSIG__HMAC__SHA384)
  3770  			return ok
  3771  		}
  3772  	default:
  3773  		{
  3774  			return false // unexpected
  3775  		}
  3776  	}
  3777  }
  3778  
  3779  func (_this DBEAlgorithmSuiteId) EqualsGeneric(other interface{}) bool {
  3780  	typed, ok := other.(DBEAlgorithmSuiteId)
  3781  	return ok && _this.Equals(typed)
  3782  }
  3783  
  3784  func Type_DBEAlgorithmSuiteId_() _dafny.TypeDescriptor {
  3785  	return type_DBEAlgorithmSuiteId_{}
  3786  }
  3787  
  3788  type type_DBEAlgorithmSuiteId_ struct {
  3789  }
  3790  
  3791  func (_this type_DBEAlgorithmSuiteId_) Default() interface{} {
  3792  	return Companion_DBEAlgorithmSuiteId_.Default()
  3793  }
  3794  
  3795  func (_this type_DBEAlgorithmSuiteId_) String() string {
  3796  	return "AwsCryptographyMaterialProvidersTypes.DBEAlgorithmSuiteId"
  3797  }
  3798  func (_this DBEAlgorithmSuiteId) ParentTraits_() []*_dafny.TraitID {
  3799  	return [](*_dafny.TraitID){}
  3800  }
  3801  
  3802  var _ _dafny.TraitOffspring = DBEAlgorithmSuiteId{}
  3803  
  3804  // End of datatype DBEAlgorithmSuiteId
  3805  
  3806  // Definition of datatype DBECommitmentPolicy
  3807  type DBECommitmentPolicy struct {
  3808  	Data_DBECommitmentPolicy_
  3809  }
  3810  
  3811  func (_this DBECommitmentPolicy) Get_() Data_DBECommitmentPolicy_ {
  3812  	return _this.Data_DBECommitmentPolicy_
  3813  }
  3814  
  3815  type Data_DBECommitmentPolicy_ interface {
  3816  	isDBECommitmentPolicy()
  3817  }
  3818  
  3819  type CompanionStruct_DBECommitmentPolicy_ struct {
  3820  }
  3821  
  3822  var Companion_DBECommitmentPolicy_ = CompanionStruct_DBECommitmentPolicy_{}
  3823  
  3824  type DBECommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT struct {
  3825  }
  3826  
  3827  func (DBECommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT) isDBECommitmentPolicy() {}
  3828  
  3829  func (CompanionStruct_DBECommitmentPolicy_) Create_REQUIRE__ENCRYPT__REQUIRE__DECRYPT_() DBECommitmentPolicy {
  3830  	return DBECommitmentPolicy{DBECommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT{}}
  3831  }
  3832  
  3833  func (_this DBECommitmentPolicy) Is_REQUIRE__ENCRYPT__REQUIRE__DECRYPT() bool {
  3834  	_, ok := _this.Get_().(DBECommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT)
  3835  	return ok
  3836  }
  3837  
  3838  func (CompanionStruct_DBECommitmentPolicy_) Default() DBECommitmentPolicy {
  3839  	return Companion_DBECommitmentPolicy_.Create_REQUIRE__ENCRYPT__REQUIRE__DECRYPT_()
  3840  }
  3841  
  3842  func (_ CompanionStruct_DBECommitmentPolicy_) AllSingletonConstructors() _dafny.Iterator {
  3843  	i := -1
  3844  	return func() (interface{}, bool) {
  3845  		i++
  3846  		switch i {
  3847  		case 0:
  3848  			return Companion_DBECommitmentPolicy_.Create_REQUIRE__ENCRYPT__REQUIRE__DECRYPT_(), true
  3849  		default:
  3850  			return DBECommitmentPolicy{}, false
  3851  		}
  3852  	}
  3853  }
  3854  
  3855  func (_this DBECommitmentPolicy) String() string {
  3856  	switch _this.Get_().(type) {
  3857  	case nil:
  3858  		return "null"
  3859  	case DBECommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT:
  3860  		{
  3861  			return "AwsCryptographyMaterialProvidersTypes.DBECommitmentPolicy.REQUIRE_ENCRYPT_REQUIRE_DECRYPT"
  3862  		}
  3863  	default:
  3864  		{
  3865  			return "<unexpected>"
  3866  		}
  3867  	}
  3868  }
  3869  
  3870  func (_this DBECommitmentPolicy) Equals(other DBECommitmentPolicy) bool {
  3871  	switch _this.Get_().(type) {
  3872  	case DBECommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT:
  3873  		{
  3874  			_, ok := other.Get_().(DBECommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT)
  3875  			return ok
  3876  		}
  3877  	default:
  3878  		{
  3879  			return false // unexpected
  3880  		}
  3881  	}
  3882  }
  3883  
  3884  func (_this DBECommitmentPolicy) EqualsGeneric(other interface{}) bool {
  3885  	typed, ok := other.(DBECommitmentPolicy)
  3886  	return ok && _this.Equals(typed)
  3887  }
  3888  
  3889  func Type_DBECommitmentPolicy_() _dafny.TypeDescriptor {
  3890  	return type_DBECommitmentPolicy_{}
  3891  }
  3892  
  3893  type type_DBECommitmentPolicy_ struct {
  3894  }
  3895  
  3896  func (_this type_DBECommitmentPolicy_) Default() interface{} {
  3897  	return Companion_DBECommitmentPolicy_.Default()
  3898  }
  3899  
  3900  func (_this type_DBECommitmentPolicy_) String() string {
  3901  	return "AwsCryptographyMaterialProvidersTypes.DBECommitmentPolicy"
  3902  }
  3903  func (_this DBECommitmentPolicy) ParentTraits_() []*_dafny.TraitID {
  3904  	return [](*_dafny.TraitID){}
  3905  }
  3906  
  3907  var _ _dafny.TraitOffspring = DBECommitmentPolicy{}
  3908  
  3909  // End of datatype DBECommitmentPolicy
  3910  
  3911  // Definition of datatype DecryptionMaterials
  3912  type DecryptionMaterials struct {
  3913  	Data_DecryptionMaterials_
  3914  }
  3915  
  3916  func (_this DecryptionMaterials) Get_() Data_DecryptionMaterials_ {
  3917  	return _this.Data_DecryptionMaterials_
  3918  }
  3919  
  3920  type Data_DecryptionMaterials_ interface {
  3921  	isDecryptionMaterials()
  3922  }
  3923  
  3924  type CompanionStruct_DecryptionMaterials_ struct {
  3925  }
  3926  
  3927  var Companion_DecryptionMaterials_ = CompanionStruct_DecryptionMaterials_{}
  3928  
  3929  type DecryptionMaterials_DecryptionMaterials struct {
  3930  	AlgorithmSuite                AlgorithmSuiteInfo
  3931  	EncryptionContext             _dafny.Map
  3932  	RequiredEncryptionContextKeys _dafny.Sequence
  3933  	PlaintextDataKey              m_Wrappers.Option
  3934  	VerificationKey               m_Wrappers.Option
  3935  	SymmetricSigningKey           m_Wrappers.Option
  3936  }
  3937  
  3938  func (DecryptionMaterials_DecryptionMaterials) isDecryptionMaterials() {}
  3939  
  3940  func (CompanionStruct_DecryptionMaterials_) Create_DecryptionMaterials_(AlgorithmSuite AlgorithmSuiteInfo, EncryptionContext _dafny.Map, RequiredEncryptionContextKeys _dafny.Sequence, PlaintextDataKey m_Wrappers.Option, VerificationKey m_Wrappers.Option, SymmetricSigningKey m_Wrappers.Option) DecryptionMaterials {
  3941  	return DecryptionMaterials{DecryptionMaterials_DecryptionMaterials{AlgorithmSuite, EncryptionContext, RequiredEncryptionContextKeys, PlaintextDataKey, VerificationKey, SymmetricSigningKey}}
  3942  }
  3943  
  3944  func (_this DecryptionMaterials) Is_DecryptionMaterials() bool {
  3945  	_, ok := _this.Get_().(DecryptionMaterials_DecryptionMaterials)
  3946  	return ok
  3947  }
  3948  
  3949  func (CompanionStruct_DecryptionMaterials_) Default() DecryptionMaterials {
  3950  	return Companion_DecryptionMaterials_.Create_DecryptionMaterials_(Companion_AlgorithmSuiteInfo_.Default(), _dafny.EmptyMap, _dafny.EmptySeq, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default())
  3951  }
  3952  
  3953  func (_this DecryptionMaterials) Dtor_algorithmSuite() AlgorithmSuiteInfo {
  3954  	return _this.Get_().(DecryptionMaterials_DecryptionMaterials).AlgorithmSuite
  3955  }
  3956  
  3957  func (_this DecryptionMaterials) Dtor_encryptionContext() _dafny.Map {
  3958  	return _this.Get_().(DecryptionMaterials_DecryptionMaterials).EncryptionContext
  3959  }
  3960  
  3961  func (_this DecryptionMaterials) Dtor_requiredEncryptionContextKeys() _dafny.Sequence {
  3962  	return _this.Get_().(DecryptionMaterials_DecryptionMaterials).RequiredEncryptionContextKeys
  3963  }
  3964  
  3965  func (_this DecryptionMaterials) Dtor_plaintextDataKey() m_Wrappers.Option {
  3966  	return _this.Get_().(DecryptionMaterials_DecryptionMaterials).PlaintextDataKey
  3967  }
  3968  
  3969  func (_this DecryptionMaterials) Dtor_verificationKey() m_Wrappers.Option {
  3970  	return _this.Get_().(DecryptionMaterials_DecryptionMaterials).VerificationKey
  3971  }
  3972  
  3973  func (_this DecryptionMaterials) Dtor_symmetricSigningKey() m_Wrappers.Option {
  3974  	return _this.Get_().(DecryptionMaterials_DecryptionMaterials).SymmetricSigningKey
  3975  }
  3976  
  3977  func (_this DecryptionMaterials) String() string {
  3978  	switch data := _this.Get_().(type) {
  3979  	case nil:
  3980  		return "null"
  3981  	case DecryptionMaterials_DecryptionMaterials:
  3982  		{
  3983  			return "AwsCryptographyMaterialProvidersTypes.DecryptionMaterials.DecryptionMaterials" + "(" + _dafny.String(data.AlgorithmSuite) + ", " + _dafny.String(data.EncryptionContext) + ", " + _dafny.String(data.RequiredEncryptionContextKeys) + ", " + _dafny.String(data.PlaintextDataKey) + ", " + _dafny.String(data.VerificationKey) + ", " + _dafny.String(data.SymmetricSigningKey) + ")"
  3984  		}
  3985  	default:
  3986  		{
  3987  			return "<unexpected>"
  3988  		}
  3989  	}
  3990  }
  3991  
  3992  func (_this DecryptionMaterials) Equals(other DecryptionMaterials) bool {
  3993  	switch data1 := _this.Get_().(type) {
  3994  	case DecryptionMaterials_DecryptionMaterials:
  3995  		{
  3996  			data2, ok := other.Get_().(DecryptionMaterials_DecryptionMaterials)
  3997  			return ok && data1.AlgorithmSuite.Equals(data2.AlgorithmSuite) && data1.EncryptionContext.Equals(data2.EncryptionContext) && data1.RequiredEncryptionContextKeys.Equals(data2.RequiredEncryptionContextKeys) && data1.PlaintextDataKey.Equals(data2.PlaintextDataKey) && data1.VerificationKey.Equals(data2.VerificationKey) && data1.SymmetricSigningKey.Equals(data2.SymmetricSigningKey)
  3998  		}
  3999  	default:
  4000  		{
  4001  			return false // unexpected
  4002  		}
  4003  	}
  4004  }
  4005  
  4006  func (_this DecryptionMaterials) EqualsGeneric(other interface{}) bool {
  4007  	typed, ok := other.(DecryptionMaterials)
  4008  	return ok && _this.Equals(typed)
  4009  }
  4010  
  4011  func Type_DecryptionMaterials_() _dafny.TypeDescriptor {
  4012  	return type_DecryptionMaterials_{}
  4013  }
  4014  
  4015  type type_DecryptionMaterials_ struct {
  4016  }
  4017  
  4018  func (_this type_DecryptionMaterials_) Default() interface{} {
  4019  	return Companion_DecryptionMaterials_.Default()
  4020  }
  4021  
  4022  func (_this type_DecryptionMaterials_) String() string {
  4023  	return "AwsCryptographyMaterialProvidersTypes.DecryptionMaterials"
  4024  }
  4025  func (_this DecryptionMaterials) ParentTraits_() []*_dafny.TraitID {
  4026  	return [](*_dafny.TraitID){}
  4027  }
  4028  
  4029  var _ _dafny.TraitOffspring = DecryptionMaterials{}
  4030  
  4031  // End of datatype DecryptionMaterials
  4032  
  4033  // Definition of datatype DecryptMaterialsInput
  4034  type DecryptMaterialsInput struct {
  4035  	Data_DecryptMaterialsInput_
  4036  }
  4037  
  4038  func (_this DecryptMaterialsInput) Get_() Data_DecryptMaterialsInput_ {
  4039  	return _this.Data_DecryptMaterialsInput_
  4040  }
  4041  
  4042  type Data_DecryptMaterialsInput_ interface {
  4043  	isDecryptMaterialsInput()
  4044  }
  4045  
  4046  type CompanionStruct_DecryptMaterialsInput_ struct {
  4047  }
  4048  
  4049  var Companion_DecryptMaterialsInput_ = CompanionStruct_DecryptMaterialsInput_{}
  4050  
  4051  type DecryptMaterialsInput_DecryptMaterialsInput struct {
  4052  	AlgorithmSuiteId            AlgorithmSuiteId
  4053  	CommitmentPolicy            CommitmentPolicy
  4054  	EncryptedDataKeys           _dafny.Sequence
  4055  	EncryptionContext           _dafny.Map
  4056  	ReproducedEncryptionContext m_Wrappers.Option
  4057  }
  4058  
  4059  func (DecryptMaterialsInput_DecryptMaterialsInput) isDecryptMaterialsInput() {}
  4060  
  4061  func (CompanionStruct_DecryptMaterialsInput_) Create_DecryptMaterialsInput_(AlgorithmSuiteId AlgorithmSuiteId, CommitmentPolicy CommitmentPolicy, EncryptedDataKeys _dafny.Sequence, EncryptionContext _dafny.Map, ReproducedEncryptionContext m_Wrappers.Option) DecryptMaterialsInput {
  4062  	return DecryptMaterialsInput{DecryptMaterialsInput_DecryptMaterialsInput{AlgorithmSuiteId, CommitmentPolicy, EncryptedDataKeys, EncryptionContext, ReproducedEncryptionContext}}
  4063  }
  4064  
  4065  func (_this DecryptMaterialsInput) Is_DecryptMaterialsInput() bool {
  4066  	_, ok := _this.Get_().(DecryptMaterialsInput_DecryptMaterialsInput)
  4067  	return ok
  4068  }
  4069  
  4070  func (CompanionStruct_DecryptMaterialsInput_) Default() DecryptMaterialsInput {
  4071  	return Companion_DecryptMaterialsInput_.Create_DecryptMaterialsInput_(Companion_AlgorithmSuiteId_.Default(), Companion_CommitmentPolicy_.Default(), _dafny.EmptySeq, _dafny.EmptyMap, m_Wrappers.Companion_Option_.Default())
  4072  }
  4073  
  4074  func (_this DecryptMaterialsInput) Dtor_algorithmSuiteId() AlgorithmSuiteId {
  4075  	return _this.Get_().(DecryptMaterialsInput_DecryptMaterialsInput).AlgorithmSuiteId
  4076  }
  4077  
  4078  func (_this DecryptMaterialsInput) Dtor_commitmentPolicy() CommitmentPolicy {
  4079  	return _this.Get_().(DecryptMaterialsInput_DecryptMaterialsInput).CommitmentPolicy
  4080  }
  4081  
  4082  func (_this DecryptMaterialsInput) Dtor_encryptedDataKeys() _dafny.Sequence {
  4083  	return _this.Get_().(DecryptMaterialsInput_DecryptMaterialsInput).EncryptedDataKeys
  4084  }
  4085  
  4086  func (_this DecryptMaterialsInput) Dtor_encryptionContext() _dafny.Map {
  4087  	return _this.Get_().(DecryptMaterialsInput_DecryptMaterialsInput).EncryptionContext
  4088  }
  4089  
  4090  func (_this DecryptMaterialsInput) Dtor_reproducedEncryptionContext() m_Wrappers.Option {
  4091  	return _this.Get_().(DecryptMaterialsInput_DecryptMaterialsInput).ReproducedEncryptionContext
  4092  }
  4093  
  4094  func (_this DecryptMaterialsInput) String() string {
  4095  	switch data := _this.Get_().(type) {
  4096  	case nil:
  4097  		return "null"
  4098  	case DecryptMaterialsInput_DecryptMaterialsInput:
  4099  		{
  4100  			return "AwsCryptographyMaterialProvidersTypes.DecryptMaterialsInput.DecryptMaterialsInput" + "(" + _dafny.String(data.AlgorithmSuiteId) + ", " + _dafny.String(data.CommitmentPolicy) + ", " + _dafny.String(data.EncryptedDataKeys) + ", " + _dafny.String(data.EncryptionContext) + ", " + _dafny.String(data.ReproducedEncryptionContext) + ")"
  4101  		}
  4102  	default:
  4103  		{
  4104  			return "<unexpected>"
  4105  		}
  4106  	}
  4107  }
  4108  
  4109  func (_this DecryptMaterialsInput) Equals(other DecryptMaterialsInput) bool {
  4110  	switch data1 := _this.Get_().(type) {
  4111  	case DecryptMaterialsInput_DecryptMaterialsInput:
  4112  		{
  4113  			data2, ok := other.Get_().(DecryptMaterialsInput_DecryptMaterialsInput)
  4114  			return ok && data1.AlgorithmSuiteId.Equals(data2.AlgorithmSuiteId) && data1.CommitmentPolicy.Equals(data2.CommitmentPolicy) && data1.EncryptedDataKeys.Equals(data2.EncryptedDataKeys) && data1.EncryptionContext.Equals(data2.EncryptionContext) && data1.ReproducedEncryptionContext.Equals(data2.ReproducedEncryptionContext)
  4115  		}
  4116  	default:
  4117  		{
  4118  			return false // unexpected
  4119  		}
  4120  	}
  4121  }
  4122  
  4123  func (_this DecryptMaterialsInput) EqualsGeneric(other interface{}) bool {
  4124  	typed, ok := other.(DecryptMaterialsInput)
  4125  	return ok && _this.Equals(typed)
  4126  }
  4127  
  4128  func Type_DecryptMaterialsInput_() _dafny.TypeDescriptor {
  4129  	return type_DecryptMaterialsInput_{}
  4130  }
  4131  
  4132  type type_DecryptMaterialsInput_ struct {
  4133  }
  4134  
  4135  func (_this type_DecryptMaterialsInput_) Default() interface{} {
  4136  	return Companion_DecryptMaterialsInput_.Default()
  4137  }
  4138  
  4139  func (_this type_DecryptMaterialsInput_) String() string {
  4140  	return "AwsCryptographyMaterialProvidersTypes.DecryptMaterialsInput"
  4141  }
  4142  func (_this DecryptMaterialsInput) ParentTraits_() []*_dafny.TraitID {
  4143  	return [](*_dafny.TraitID){}
  4144  }
  4145  
  4146  var _ _dafny.TraitOffspring = DecryptMaterialsInput{}
  4147  
  4148  // End of datatype DecryptMaterialsInput
  4149  
  4150  // Definition of datatype DecryptMaterialsOutput
  4151  type DecryptMaterialsOutput struct {
  4152  	Data_DecryptMaterialsOutput_
  4153  }
  4154  
  4155  func (_this DecryptMaterialsOutput) Get_() Data_DecryptMaterialsOutput_ {
  4156  	return _this.Data_DecryptMaterialsOutput_
  4157  }
  4158  
  4159  type Data_DecryptMaterialsOutput_ interface {
  4160  	isDecryptMaterialsOutput()
  4161  }
  4162  
  4163  type CompanionStruct_DecryptMaterialsOutput_ struct {
  4164  }
  4165  
  4166  var Companion_DecryptMaterialsOutput_ = CompanionStruct_DecryptMaterialsOutput_{}
  4167  
  4168  type DecryptMaterialsOutput_DecryptMaterialsOutput struct {
  4169  	DecryptionMaterials DecryptionMaterials
  4170  }
  4171  
  4172  func (DecryptMaterialsOutput_DecryptMaterialsOutput) isDecryptMaterialsOutput() {}
  4173  
  4174  func (CompanionStruct_DecryptMaterialsOutput_) Create_DecryptMaterialsOutput_(DecryptionMaterials DecryptionMaterials) DecryptMaterialsOutput {
  4175  	return DecryptMaterialsOutput{DecryptMaterialsOutput_DecryptMaterialsOutput{DecryptionMaterials}}
  4176  }
  4177  
  4178  func (_this DecryptMaterialsOutput) Is_DecryptMaterialsOutput() bool {
  4179  	_, ok := _this.Get_().(DecryptMaterialsOutput_DecryptMaterialsOutput)
  4180  	return ok
  4181  }
  4182  
  4183  func (CompanionStruct_DecryptMaterialsOutput_) Default() DecryptMaterialsOutput {
  4184  	return Companion_DecryptMaterialsOutput_.Create_DecryptMaterialsOutput_(Companion_DecryptionMaterials_.Default())
  4185  }
  4186  
  4187  func (_this DecryptMaterialsOutput) Dtor_decryptionMaterials() DecryptionMaterials {
  4188  	return _this.Get_().(DecryptMaterialsOutput_DecryptMaterialsOutput).DecryptionMaterials
  4189  }
  4190  
  4191  func (_this DecryptMaterialsOutput) String() string {
  4192  	switch data := _this.Get_().(type) {
  4193  	case nil:
  4194  		return "null"
  4195  	case DecryptMaterialsOutput_DecryptMaterialsOutput:
  4196  		{
  4197  			return "AwsCryptographyMaterialProvidersTypes.DecryptMaterialsOutput.DecryptMaterialsOutput" + "(" + _dafny.String(data.DecryptionMaterials) + ")"
  4198  		}
  4199  	default:
  4200  		{
  4201  			return "<unexpected>"
  4202  		}
  4203  	}
  4204  }
  4205  
  4206  func (_this DecryptMaterialsOutput) Equals(other DecryptMaterialsOutput) bool {
  4207  	switch data1 := _this.Get_().(type) {
  4208  	case DecryptMaterialsOutput_DecryptMaterialsOutput:
  4209  		{
  4210  			data2, ok := other.Get_().(DecryptMaterialsOutput_DecryptMaterialsOutput)
  4211  			return ok && data1.DecryptionMaterials.Equals(data2.DecryptionMaterials)
  4212  		}
  4213  	default:
  4214  		{
  4215  			return false // unexpected
  4216  		}
  4217  	}
  4218  }
  4219  
  4220  func (_this DecryptMaterialsOutput) EqualsGeneric(other interface{}) bool {
  4221  	typed, ok := other.(DecryptMaterialsOutput)
  4222  	return ok && _this.Equals(typed)
  4223  }
  4224  
  4225  func Type_DecryptMaterialsOutput_() _dafny.TypeDescriptor {
  4226  	return type_DecryptMaterialsOutput_{}
  4227  }
  4228  
  4229  type type_DecryptMaterialsOutput_ struct {
  4230  }
  4231  
  4232  func (_this type_DecryptMaterialsOutput_) Default() interface{} {
  4233  	return Companion_DecryptMaterialsOutput_.Default()
  4234  }
  4235  
  4236  func (_this type_DecryptMaterialsOutput_) String() string {
  4237  	return "AwsCryptographyMaterialProvidersTypes.DecryptMaterialsOutput"
  4238  }
  4239  func (_this DecryptMaterialsOutput) ParentTraits_() []*_dafny.TraitID {
  4240  	return [](*_dafny.TraitID){}
  4241  }
  4242  
  4243  var _ _dafny.TraitOffspring = DecryptMaterialsOutput{}
  4244  
  4245  // End of datatype DecryptMaterialsOutput
  4246  
  4247  // Definition of datatype DefaultCache
  4248  type DefaultCache struct {
  4249  	Data_DefaultCache_
  4250  }
  4251  
  4252  func (_this DefaultCache) Get_() Data_DefaultCache_ {
  4253  	return _this.Data_DefaultCache_
  4254  }
  4255  
  4256  type Data_DefaultCache_ interface {
  4257  	isDefaultCache()
  4258  }
  4259  
  4260  type CompanionStruct_DefaultCache_ struct {
  4261  }
  4262  
  4263  var Companion_DefaultCache_ = CompanionStruct_DefaultCache_{}
  4264  
  4265  type DefaultCache_DefaultCache struct {
  4266  	EntryCapacity int32
  4267  }
  4268  
  4269  func (DefaultCache_DefaultCache) isDefaultCache() {}
  4270  
  4271  func (CompanionStruct_DefaultCache_) Create_DefaultCache_(EntryCapacity int32) DefaultCache {
  4272  	return DefaultCache{DefaultCache_DefaultCache{EntryCapacity}}
  4273  }
  4274  
  4275  func (_this DefaultCache) Is_DefaultCache() bool {
  4276  	_, ok := _this.Get_().(DefaultCache_DefaultCache)
  4277  	return ok
  4278  }
  4279  
  4280  func (CompanionStruct_DefaultCache_) Default() DefaultCache {
  4281  	return Companion_DefaultCache_.Create_DefaultCache_(int32(0))
  4282  }
  4283  
  4284  func (_this DefaultCache) Dtor_entryCapacity() int32 {
  4285  	return _this.Get_().(DefaultCache_DefaultCache).EntryCapacity
  4286  }
  4287  
  4288  func (_this DefaultCache) String() string {
  4289  	switch data := _this.Get_().(type) {
  4290  	case nil:
  4291  		return "null"
  4292  	case DefaultCache_DefaultCache:
  4293  		{
  4294  			return "AwsCryptographyMaterialProvidersTypes.DefaultCache.DefaultCache" + "(" + _dafny.String(data.EntryCapacity) + ")"
  4295  		}
  4296  	default:
  4297  		{
  4298  			return "<unexpected>"
  4299  		}
  4300  	}
  4301  }
  4302  
  4303  func (_this DefaultCache) Equals(other DefaultCache) bool {
  4304  	switch data1 := _this.Get_().(type) {
  4305  	case DefaultCache_DefaultCache:
  4306  		{
  4307  			data2, ok := other.Get_().(DefaultCache_DefaultCache)
  4308  			return ok && data1.EntryCapacity == data2.EntryCapacity
  4309  		}
  4310  	default:
  4311  		{
  4312  			return false // unexpected
  4313  		}
  4314  	}
  4315  }
  4316  
  4317  func (_this DefaultCache) EqualsGeneric(other interface{}) bool {
  4318  	typed, ok := other.(DefaultCache)
  4319  	return ok && _this.Equals(typed)
  4320  }
  4321  
  4322  func Type_DefaultCache_() _dafny.TypeDescriptor {
  4323  	return type_DefaultCache_{}
  4324  }
  4325  
  4326  type type_DefaultCache_ struct {
  4327  }
  4328  
  4329  func (_this type_DefaultCache_) Default() interface{} {
  4330  	return Companion_DefaultCache_.Default()
  4331  }
  4332  
  4333  func (_this type_DefaultCache_) String() string {
  4334  	return "AwsCryptographyMaterialProvidersTypes.DefaultCache"
  4335  }
  4336  func (_this DefaultCache) ParentTraits_() []*_dafny.TraitID {
  4337  	return [](*_dafny.TraitID){}
  4338  }
  4339  
  4340  var _ _dafny.TraitOffspring = DefaultCache{}
  4341  
  4342  // End of datatype DefaultCache
  4343  
  4344  // Definition of datatype DeleteCacheEntryInput
  4345  type DeleteCacheEntryInput struct {
  4346  	Data_DeleteCacheEntryInput_
  4347  }
  4348  
  4349  func (_this DeleteCacheEntryInput) Get_() Data_DeleteCacheEntryInput_ {
  4350  	return _this.Data_DeleteCacheEntryInput_
  4351  }
  4352  
  4353  type Data_DeleteCacheEntryInput_ interface {
  4354  	isDeleteCacheEntryInput()
  4355  }
  4356  
  4357  type CompanionStruct_DeleteCacheEntryInput_ struct {
  4358  }
  4359  
  4360  var Companion_DeleteCacheEntryInput_ = CompanionStruct_DeleteCacheEntryInput_{}
  4361  
  4362  type DeleteCacheEntryInput_DeleteCacheEntryInput struct {
  4363  	Identifier _dafny.Sequence
  4364  }
  4365  
  4366  func (DeleteCacheEntryInput_DeleteCacheEntryInput) isDeleteCacheEntryInput() {}
  4367  
  4368  func (CompanionStruct_DeleteCacheEntryInput_) Create_DeleteCacheEntryInput_(Identifier _dafny.Sequence) DeleteCacheEntryInput {
  4369  	return DeleteCacheEntryInput{DeleteCacheEntryInput_DeleteCacheEntryInput{Identifier}}
  4370  }
  4371  
  4372  func (_this DeleteCacheEntryInput) Is_DeleteCacheEntryInput() bool {
  4373  	_, ok := _this.Get_().(DeleteCacheEntryInput_DeleteCacheEntryInput)
  4374  	return ok
  4375  }
  4376  
  4377  func (CompanionStruct_DeleteCacheEntryInput_) Default() DeleteCacheEntryInput {
  4378  	return Companion_DeleteCacheEntryInput_.Create_DeleteCacheEntryInput_(_dafny.EmptySeq)
  4379  }
  4380  
  4381  func (_this DeleteCacheEntryInput) Dtor_identifier() _dafny.Sequence {
  4382  	return _this.Get_().(DeleteCacheEntryInput_DeleteCacheEntryInput).Identifier
  4383  }
  4384  
  4385  func (_this DeleteCacheEntryInput) String() string {
  4386  	switch data := _this.Get_().(type) {
  4387  	case nil:
  4388  		return "null"
  4389  	case DeleteCacheEntryInput_DeleteCacheEntryInput:
  4390  		{
  4391  			return "AwsCryptographyMaterialProvidersTypes.DeleteCacheEntryInput.DeleteCacheEntryInput" + "(" + _dafny.String(data.Identifier) + ")"
  4392  		}
  4393  	default:
  4394  		{
  4395  			return "<unexpected>"
  4396  		}
  4397  	}
  4398  }
  4399  
  4400  func (_this DeleteCacheEntryInput) Equals(other DeleteCacheEntryInput) bool {
  4401  	switch data1 := _this.Get_().(type) {
  4402  	case DeleteCacheEntryInput_DeleteCacheEntryInput:
  4403  		{
  4404  			data2, ok := other.Get_().(DeleteCacheEntryInput_DeleteCacheEntryInput)
  4405  			return ok && data1.Identifier.Equals(data2.Identifier)
  4406  		}
  4407  	default:
  4408  		{
  4409  			return false // unexpected
  4410  		}
  4411  	}
  4412  }
  4413  
  4414  func (_this DeleteCacheEntryInput) EqualsGeneric(other interface{}) bool {
  4415  	typed, ok := other.(DeleteCacheEntryInput)
  4416  	return ok && _this.Equals(typed)
  4417  }
  4418  
  4419  func Type_DeleteCacheEntryInput_() _dafny.TypeDescriptor {
  4420  	return type_DeleteCacheEntryInput_{}
  4421  }
  4422  
  4423  type type_DeleteCacheEntryInput_ struct {
  4424  }
  4425  
  4426  func (_this type_DeleteCacheEntryInput_) Default() interface{} {
  4427  	return Companion_DeleteCacheEntryInput_.Default()
  4428  }
  4429  
  4430  func (_this type_DeleteCacheEntryInput_) String() string {
  4431  	return "AwsCryptographyMaterialProvidersTypes.DeleteCacheEntryInput"
  4432  }
  4433  func (_this DeleteCacheEntryInput) ParentTraits_() []*_dafny.TraitID {
  4434  	return [](*_dafny.TraitID){}
  4435  }
  4436  
  4437  var _ _dafny.TraitOffspring = DeleteCacheEntryInput{}
  4438  
  4439  // End of datatype DeleteCacheEntryInput
  4440  
  4441  // Definition of datatype DerivationAlgorithm
  4442  type DerivationAlgorithm struct {
  4443  	Data_DerivationAlgorithm_
  4444  }
  4445  
  4446  func (_this DerivationAlgorithm) Get_() Data_DerivationAlgorithm_ {
  4447  	return _this.Data_DerivationAlgorithm_
  4448  }
  4449  
  4450  type Data_DerivationAlgorithm_ interface {
  4451  	isDerivationAlgorithm()
  4452  }
  4453  
  4454  type CompanionStruct_DerivationAlgorithm_ struct {
  4455  }
  4456  
  4457  var Companion_DerivationAlgorithm_ = CompanionStruct_DerivationAlgorithm_{}
  4458  
  4459  type DerivationAlgorithm_HKDF struct {
  4460  	HKDF HKDF
  4461  }
  4462  
  4463  func (DerivationAlgorithm_HKDF) isDerivationAlgorithm() {}
  4464  
  4465  func (CompanionStruct_DerivationAlgorithm_) Create_HKDF_(HKDF HKDF) DerivationAlgorithm {
  4466  	return DerivationAlgorithm{DerivationAlgorithm_HKDF{HKDF}}
  4467  }
  4468  
  4469  func (_this DerivationAlgorithm) Is_HKDF() bool {
  4470  	_, ok := _this.Get_().(DerivationAlgorithm_HKDF)
  4471  	return ok
  4472  }
  4473  
  4474  type DerivationAlgorithm_IDENTITY struct {
  4475  	IDENTITY IDENTITY
  4476  }
  4477  
  4478  func (DerivationAlgorithm_IDENTITY) isDerivationAlgorithm() {}
  4479  
  4480  func (CompanionStruct_DerivationAlgorithm_) Create_IDENTITY_(IDENTITY IDENTITY) DerivationAlgorithm {
  4481  	return DerivationAlgorithm{DerivationAlgorithm_IDENTITY{IDENTITY}}
  4482  }
  4483  
  4484  func (_this DerivationAlgorithm) Is_IDENTITY() bool {
  4485  	_, ok := _this.Get_().(DerivationAlgorithm_IDENTITY)
  4486  	return ok
  4487  }
  4488  
  4489  type DerivationAlgorithm_None struct {
  4490  	None None
  4491  }
  4492  
  4493  func (DerivationAlgorithm_None) isDerivationAlgorithm() {}
  4494  
  4495  func (CompanionStruct_DerivationAlgorithm_) Create_None_(None None) DerivationAlgorithm {
  4496  	return DerivationAlgorithm{DerivationAlgorithm_None{None}}
  4497  }
  4498  
  4499  func (_this DerivationAlgorithm) Is_None() bool {
  4500  	_, ok := _this.Get_().(DerivationAlgorithm_None)
  4501  	return ok
  4502  }
  4503  
  4504  func (CompanionStruct_DerivationAlgorithm_) Default() DerivationAlgorithm {
  4505  	return Companion_DerivationAlgorithm_.Create_HKDF_(Companion_HKDF_.Default())
  4506  }
  4507  
  4508  func (_this DerivationAlgorithm) Dtor_HKDF() HKDF {
  4509  	return _this.Get_().(DerivationAlgorithm_HKDF).HKDF
  4510  }
  4511  
  4512  func (_this DerivationAlgorithm) Dtor_IDENTITY() IDENTITY {
  4513  	return _this.Get_().(DerivationAlgorithm_IDENTITY).IDENTITY
  4514  }
  4515  
  4516  func (_this DerivationAlgorithm) Dtor_None() None {
  4517  	return _this.Get_().(DerivationAlgorithm_None).None
  4518  }
  4519  
  4520  func (_this DerivationAlgorithm) String() string {
  4521  	switch data := _this.Get_().(type) {
  4522  	case nil:
  4523  		return "null"
  4524  	case DerivationAlgorithm_HKDF:
  4525  		{
  4526  			return "AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm.HKDF" + "(" + _dafny.String(data.HKDF) + ")"
  4527  		}
  4528  	case DerivationAlgorithm_IDENTITY:
  4529  		{
  4530  			return "AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm.IDENTITY" + "(" + _dafny.String(data.IDENTITY) + ")"
  4531  		}
  4532  	case DerivationAlgorithm_None:
  4533  		{
  4534  			return "AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm.None" + "(" + _dafny.String(data.None) + ")"
  4535  		}
  4536  	default:
  4537  		{
  4538  			return "<unexpected>"
  4539  		}
  4540  	}
  4541  }
  4542  
  4543  func (_this DerivationAlgorithm) Equals(other DerivationAlgorithm) bool {
  4544  	switch data1 := _this.Get_().(type) {
  4545  	case DerivationAlgorithm_HKDF:
  4546  		{
  4547  			data2, ok := other.Get_().(DerivationAlgorithm_HKDF)
  4548  			return ok && data1.HKDF.Equals(data2.HKDF)
  4549  		}
  4550  	case DerivationAlgorithm_IDENTITY:
  4551  		{
  4552  			data2, ok := other.Get_().(DerivationAlgorithm_IDENTITY)
  4553  			return ok && data1.IDENTITY.Equals(data2.IDENTITY)
  4554  		}
  4555  	case DerivationAlgorithm_None:
  4556  		{
  4557  			data2, ok := other.Get_().(DerivationAlgorithm_None)
  4558  			return ok && data1.None.Equals(data2.None)
  4559  		}
  4560  	default:
  4561  		{
  4562  			return false // unexpected
  4563  		}
  4564  	}
  4565  }
  4566  
  4567  func (_this DerivationAlgorithm) EqualsGeneric(other interface{}) bool {
  4568  	typed, ok := other.(DerivationAlgorithm)
  4569  	return ok && _this.Equals(typed)
  4570  }
  4571  
  4572  func Type_DerivationAlgorithm_() _dafny.TypeDescriptor {
  4573  	return type_DerivationAlgorithm_{}
  4574  }
  4575  
  4576  type type_DerivationAlgorithm_ struct {
  4577  }
  4578  
  4579  func (_this type_DerivationAlgorithm_) Default() interface{} {
  4580  	return Companion_DerivationAlgorithm_.Default()
  4581  }
  4582  
  4583  func (_this type_DerivationAlgorithm_) String() string {
  4584  	return "AwsCryptographyMaterialProvidersTypes.DerivationAlgorithm"
  4585  }
  4586  func (_this DerivationAlgorithm) ParentTraits_() []*_dafny.TraitID {
  4587  	return [](*_dafny.TraitID){}
  4588  }
  4589  
  4590  var _ _dafny.TraitOffspring = DerivationAlgorithm{}
  4591  
  4592  // End of datatype DerivationAlgorithm
  4593  
  4594  // Definition of datatype DIRECT__KEY__WRAPPING
  4595  type DIRECT__KEY__WRAPPING struct {
  4596  	Data_DIRECT__KEY__WRAPPING_
  4597  }
  4598  
  4599  func (_this DIRECT__KEY__WRAPPING) Get_() Data_DIRECT__KEY__WRAPPING_ {
  4600  	return _this.Data_DIRECT__KEY__WRAPPING_
  4601  }
  4602  
  4603  type Data_DIRECT__KEY__WRAPPING_ interface {
  4604  	isDIRECT__KEY__WRAPPING()
  4605  }
  4606  
  4607  type CompanionStruct_DIRECT__KEY__WRAPPING_ struct {
  4608  }
  4609  
  4610  var Companion_DIRECT__KEY__WRAPPING_ = CompanionStruct_DIRECT__KEY__WRAPPING_{}
  4611  
  4612  type DIRECT__KEY__WRAPPING_DIRECT__KEY__WRAPPING struct {
  4613  }
  4614  
  4615  func (DIRECT__KEY__WRAPPING_DIRECT__KEY__WRAPPING) isDIRECT__KEY__WRAPPING() {}
  4616  
  4617  func (CompanionStruct_DIRECT__KEY__WRAPPING_) Create_DIRECT__KEY__WRAPPING_() DIRECT__KEY__WRAPPING {
  4618  	return DIRECT__KEY__WRAPPING{DIRECT__KEY__WRAPPING_DIRECT__KEY__WRAPPING{}}
  4619  }
  4620  
  4621  func (_this DIRECT__KEY__WRAPPING) Is_DIRECT__KEY__WRAPPING() bool {
  4622  	_, ok := _this.Get_().(DIRECT__KEY__WRAPPING_DIRECT__KEY__WRAPPING)
  4623  	return ok
  4624  }
  4625  
  4626  func (CompanionStruct_DIRECT__KEY__WRAPPING_) Default() DIRECT__KEY__WRAPPING {
  4627  	return Companion_DIRECT__KEY__WRAPPING_.Create_DIRECT__KEY__WRAPPING_()
  4628  }
  4629  
  4630  func (_ CompanionStruct_DIRECT__KEY__WRAPPING_) AllSingletonConstructors() _dafny.Iterator {
  4631  	i := -1
  4632  	return func() (interface{}, bool) {
  4633  		i++
  4634  		switch i {
  4635  		case 0:
  4636  			return Companion_DIRECT__KEY__WRAPPING_.Create_DIRECT__KEY__WRAPPING_(), true
  4637  		default:
  4638  			return DIRECT__KEY__WRAPPING{}, false
  4639  		}
  4640  	}
  4641  }
  4642  
  4643  func (_this DIRECT__KEY__WRAPPING) String() string {
  4644  	switch _this.Get_().(type) {
  4645  	case nil:
  4646  		return "null"
  4647  	case DIRECT__KEY__WRAPPING_DIRECT__KEY__WRAPPING:
  4648  		{
  4649  			return "AwsCryptographyMaterialProvidersTypes.DIRECT_KEY_WRAPPING.DIRECT_KEY_WRAPPING"
  4650  		}
  4651  	default:
  4652  		{
  4653  			return "<unexpected>"
  4654  		}
  4655  	}
  4656  }
  4657  
  4658  func (_this DIRECT__KEY__WRAPPING) Equals(other DIRECT__KEY__WRAPPING) bool {
  4659  	switch _this.Get_().(type) {
  4660  	case DIRECT__KEY__WRAPPING_DIRECT__KEY__WRAPPING:
  4661  		{
  4662  			_, ok := other.Get_().(DIRECT__KEY__WRAPPING_DIRECT__KEY__WRAPPING)
  4663  			return ok
  4664  		}
  4665  	default:
  4666  		{
  4667  			return false // unexpected
  4668  		}
  4669  	}
  4670  }
  4671  
  4672  func (_this DIRECT__KEY__WRAPPING) EqualsGeneric(other interface{}) bool {
  4673  	typed, ok := other.(DIRECT__KEY__WRAPPING)
  4674  	return ok && _this.Equals(typed)
  4675  }
  4676  
  4677  func Type_DIRECT__KEY__WRAPPING_() _dafny.TypeDescriptor {
  4678  	return type_DIRECT__KEY__WRAPPING_{}
  4679  }
  4680  
  4681  type type_DIRECT__KEY__WRAPPING_ struct {
  4682  }
  4683  
  4684  func (_this type_DIRECT__KEY__WRAPPING_) Default() interface{} {
  4685  	return Companion_DIRECT__KEY__WRAPPING_.Default()
  4686  }
  4687  
  4688  func (_this type_DIRECT__KEY__WRAPPING_) String() string {
  4689  	return "AwsCryptographyMaterialProvidersTypes.DIRECT__KEY__WRAPPING"
  4690  }
  4691  func (_this DIRECT__KEY__WRAPPING) ParentTraits_() []*_dafny.TraitID {
  4692  	return [](*_dafny.TraitID){}
  4693  }
  4694  
  4695  var _ _dafny.TraitOffspring = DIRECT__KEY__WRAPPING{}
  4696  
  4697  // End of datatype DIRECT__KEY__WRAPPING
  4698  
  4699  // Definition of datatype DiscoveryFilter
  4700  type DiscoveryFilter struct {
  4701  	Data_DiscoveryFilter_
  4702  }
  4703  
  4704  func (_this DiscoveryFilter) Get_() Data_DiscoveryFilter_ {
  4705  	return _this.Data_DiscoveryFilter_
  4706  }
  4707  
  4708  type Data_DiscoveryFilter_ interface {
  4709  	isDiscoveryFilter()
  4710  }
  4711  
  4712  type CompanionStruct_DiscoveryFilter_ struct {
  4713  }
  4714  
  4715  var Companion_DiscoveryFilter_ = CompanionStruct_DiscoveryFilter_{}
  4716  
  4717  type DiscoveryFilter_DiscoveryFilter struct {
  4718  	AccountIds _dafny.Sequence
  4719  	Partition  _dafny.Sequence
  4720  }
  4721  
  4722  func (DiscoveryFilter_DiscoveryFilter) isDiscoveryFilter() {}
  4723  
  4724  func (CompanionStruct_DiscoveryFilter_) Create_DiscoveryFilter_(AccountIds _dafny.Sequence, Partition _dafny.Sequence) DiscoveryFilter {
  4725  	return DiscoveryFilter{DiscoveryFilter_DiscoveryFilter{AccountIds, Partition}}
  4726  }
  4727  
  4728  func (_this DiscoveryFilter) Is_DiscoveryFilter() bool {
  4729  	_, ok := _this.Get_().(DiscoveryFilter_DiscoveryFilter)
  4730  	return ok
  4731  }
  4732  
  4733  func (CompanionStruct_DiscoveryFilter_) Default() DiscoveryFilter {
  4734  	return Companion_DiscoveryFilter_.Create_DiscoveryFilter_(_dafny.EmptySeq, _dafny.EmptySeq.SetString())
  4735  }
  4736  
  4737  func (_this DiscoveryFilter) Dtor_accountIds() _dafny.Sequence {
  4738  	return _this.Get_().(DiscoveryFilter_DiscoveryFilter).AccountIds
  4739  }
  4740  
  4741  func (_this DiscoveryFilter) Dtor_partition() _dafny.Sequence {
  4742  	return _this.Get_().(DiscoveryFilter_DiscoveryFilter).Partition
  4743  }
  4744  
  4745  func (_this DiscoveryFilter) String() string {
  4746  	switch data := _this.Get_().(type) {
  4747  	case nil:
  4748  		return "null"
  4749  	case DiscoveryFilter_DiscoveryFilter:
  4750  		{
  4751  			return "AwsCryptographyMaterialProvidersTypes.DiscoveryFilter.DiscoveryFilter" + "(" + _dafny.String(data.AccountIds) + ", " + _dafny.String(data.Partition) + ")"
  4752  		}
  4753  	default:
  4754  		{
  4755  			return "<unexpected>"
  4756  		}
  4757  	}
  4758  }
  4759  
  4760  func (_this DiscoveryFilter) Equals(other DiscoveryFilter) bool {
  4761  	switch data1 := _this.Get_().(type) {
  4762  	case DiscoveryFilter_DiscoveryFilter:
  4763  		{
  4764  			data2, ok := other.Get_().(DiscoveryFilter_DiscoveryFilter)
  4765  			return ok && data1.AccountIds.Equals(data2.AccountIds) && data1.Partition.Equals(data2.Partition)
  4766  		}
  4767  	default:
  4768  		{
  4769  			return false // unexpected
  4770  		}
  4771  	}
  4772  }
  4773  
  4774  func (_this DiscoveryFilter) EqualsGeneric(other interface{}) bool {
  4775  	typed, ok := other.(DiscoveryFilter)
  4776  	return ok && _this.Equals(typed)
  4777  }
  4778  
  4779  func Type_DiscoveryFilter_() _dafny.TypeDescriptor {
  4780  	return type_DiscoveryFilter_{}
  4781  }
  4782  
  4783  type type_DiscoveryFilter_ struct {
  4784  }
  4785  
  4786  func (_this type_DiscoveryFilter_) Default() interface{} {
  4787  	return Companion_DiscoveryFilter_.Default()
  4788  }
  4789  
  4790  func (_this type_DiscoveryFilter_) String() string {
  4791  	return "AwsCryptographyMaterialProvidersTypes.DiscoveryFilter"
  4792  }
  4793  func (_this DiscoveryFilter) ParentTraits_() []*_dafny.TraitID {
  4794  	return [](*_dafny.TraitID){}
  4795  }
  4796  
  4797  var _ _dafny.TraitOffspring = DiscoveryFilter{}
  4798  
  4799  // End of datatype DiscoveryFilter
  4800  
  4801  // Definition of datatype ECDSA
  4802  type ECDSA struct {
  4803  	Data_ECDSA_
  4804  }
  4805  
  4806  func (_this ECDSA) Get_() Data_ECDSA_ {
  4807  	return _this.Data_ECDSA_
  4808  }
  4809  
  4810  type Data_ECDSA_ interface {
  4811  	isECDSA()
  4812  }
  4813  
  4814  type CompanionStruct_ECDSA_ struct {
  4815  }
  4816  
  4817  var Companion_ECDSA_ = CompanionStruct_ECDSA_{}
  4818  
  4819  type ECDSA_ECDSA struct {
  4820  	Curve m_AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm
  4821  }
  4822  
  4823  func (ECDSA_ECDSA) isECDSA() {}
  4824  
  4825  func (CompanionStruct_ECDSA_) Create_ECDSA_(Curve m_AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm) ECDSA {
  4826  	return ECDSA{ECDSA_ECDSA{Curve}}
  4827  }
  4828  
  4829  func (_this ECDSA) Is_ECDSA() bool {
  4830  	_, ok := _this.Get_().(ECDSA_ECDSA)
  4831  	return ok
  4832  }
  4833  
  4834  func (CompanionStruct_ECDSA_) Default() ECDSA {
  4835  	return Companion_ECDSA_.Create_ECDSA_(m_AwsCryptographyPrimitivesTypes.Companion_ECDSASignatureAlgorithm_.Default())
  4836  }
  4837  
  4838  func (_this ECDSA) Dtor_curve() m_AwsCryptographyPrimitivesTypes.ECDSASignatureAlgorithm {
  4839  	return _this.Get_().(ECDSA_ECDSA).Curve
  4840  }
  4841  
  4842  func (_this ECDSA) String() string {
  4843  	switch data := _this.Get_().(type) {
  4844  	case nil:
  4845  		return "null"
  4846  	case ECDSA_ECDSA:
  4847  		{
  4848  			return "AwsCryptographyMaterialProvidersTypes.ECDSA.ECDSA" + "(" + _dafny.String(data.Curve) + ")"
  4849  		}
  4850  	default:
  4851  		{
  4852  			return "<unexpected>"
  4853  		}
  4854  	}
  4855  }
  4856  
  4857  func (_this ECDSA) Equals(other ECDSA) bool {
  4858  	switch data1 := _this.Get_().(type) {
  4859  	case ECDSA_ECDSA:
  4860  		{
  4861  			data2, ok := other.Get_().(ECDSA_ECDSA)
  4862  			return ok && data1.Curve.Equals(data2.Curve)
  4863  		}
  4864  	default:
  4865  		{
  4866  			return false // unexpected
  4867  		}
  4868  	}
  4869  }
  4870  
  4871  func (_this ECDSA) EqualsGeneric(other interface{}) bool {
  4872  	typed, ok := other.(ECDSA)
  4873  	return ok && _this.Equals(typed)
  4874  }
  4875  
  4876  func Type_ECDSA_() _dafny.TypeDescriptor {
  4877  	return type_ECDSA_{}
  4878  }
  4879  
  4880  type type_ECDSA_ struct {
  4881  }
  4882  
  4883  func (_this type_ECDSA_) Default() interface{} {
  4884  	return Companion_ECDSA_.Default()
  4885  }
  4886  
  4887  func (_this type_ECDSA_) String() string {
  4888  	return "AwsCryptographyMaterialProvidersTypes.ECDSA"
  4889  }
  4890  func (_this ECDSA) ParentTraits_() []*_dafny.TraitID {
  4891  	return [](*_dafny.TraitID){}
  4892  }
  4893  
  4894  var _ _dafny.TraitOffspring = ECDSA{}
  4895  
  4896  // End of datatype ECDSA
  4897  
  4898  // Definition of datatype EdkWrappingAlgorithm
  4899  type EdkWrappingAlgorithm struct {
  4900  	Data_EdkWrappingAlgorithm_
  4901  }
  4902  
  4903  func (_this EdkWrappingAlgorithm) Get_() Data_EdkWrappingAlgorithm_ {
  4904  	return _this.Data_EdkWrappingAlgorithm_
  4905  }
  4906  
  4907  type Data_EdkWrappingAlgorithm_ interface {
  4908  	isEdkWrappingAlgorithm()
  4909  }
  4910  
  4911  type CompanionStruct_EdkWrappingAlgorithm_ struct {
  4912  }
  4913  
  4914  var Companion_EdkWrappingAlgorithm_ = CompanionStruct_EdkWrappingAlgorithm_{}
  4915  
  4916  type EdkWrappingAlgorithm_DIRECT__KEY__WRAPPING struct {
  4917  	DIRECT__KEY__WRAPPING DIRECT__KEY__WRAPPING
  4918  }
  4919  
  4920  func (EdkWrappingAlgorithm_DIRECT__KEY__WRAPPING) isEdkWrappingAlgorithm() {}
  4921  
  4922  func (CompanionStruct_EdkWrappingAlgorithm_) Create_DIRECT__KEY__WRAPPING_(DIRECT__KEY__WRAPPING DIRECT__KEY__WRAPPING) EdkWrappingAlgorithm {
  4923  	return EdkWrappingAlgorithm{EdkWrappingAlgorithm_DIRECT__KEY__WRAPPING{DIRECT__KEY__WRAPPING}}
  4924  }
  4925  
  4926  func (_this EdkWrappingAlgorithm) Is_DIRECT__KEY__WRAPPING() bool {
  4927  	_, ok := _this.Get_().(EdkWrappingAlgorithm_DIRECT__KEY__WRAPPING)
  4928  	return ok
  4929  }
  4930  
  4931  type EdkWrappingAlgorithm_IntermediateKeyWrapping struct {
  4932  	IntermediateKeyWrapping IntermediateKeyWrapping
  4933  }
  4934  
  4935  func (EdkWrappingAlgorithm_IntermediateKeyWrapping) isEdkWrappingAlgorithm() {}
  4936  
  4937  func (CompanionStruct_EdkWrappingAlgorithm_) Create_IntermediateKeyWrapping_(IntermediateKeyWrapping IntermediateKeyWrapping) EdkWrappingAlgorithm {
  4938  	return EdkWrappingAlgorithm{EdkWrappingAlgorithm_IntermediateKeyWrapping{IntermediateKeyWrapping}}
  4939  }
  4940  
  4941  func (_this EdkWrappingAlgorithm) Is_IntermediateKeyWrapping() bool {
  4942  	_, ok := _this.Get_().(EdkWrappingAlgorithm_IntermediateKeyWrapping)
  4943  	return ok
  4944  }
  4945  
  4946  func (CompanionStruct_EdkWrappingAlgorithm_) Default() EdkWrappingAlgorithm {
  4947  	return Companion_EdkWrappingAlgorithm_.Create_DIRECT__KEY__WRAPPING_(Companion_DIRECT__KEY__WRAPPING_.Default())
  4948  }
  4949  
  4950  func (_this EdkWrappingAlgorithm) Dtor_DIRECT__KEY__WRAPPING() DIRECT__KEY__WRAPPING {
  4951  	return _this.Get_().(EdkWrappingAlgorithm_DIRECT__KEY__WRAPPING).DIRECT__KEY__WRAPPING
  4952  }
  4953  
  4954  func (_this EdkWrappingAlgorithm) Dtor_IntermediateKeyWrapping() IntermediateKeyWrapping {
  4955  	return _this.Get_().(EdkWrappingAlgorithm_IntermediateKeyWrapping).IntermediateKeyWrapping
  4956  }
  4957  
  4958  func (_this EdkWrappingAlgorithm) String() string {
  4959  	switch data := _this.Get_().(type) {
  4960  	case nil:
  4961  		return "null"
  4962  	case EdkWrappingAlgorithm_DIRECT__KEY__WRAPPING:
  4963  		{
  4964  			return "AwsCryptographyMaterialProvidersTypes.EdkWrappingAlgorithm.DIRECT_KEY_WRAPPING" + "(" + _dafny.String(data.DIRECT__KEY__WRAPPING) + ")"
  4965  		}
  4966  	case EdkWrappingAlgorithm_IntermediateKeyWrapping:
  4967  		{
  4968  			return "AwsCryptographyMaterialProvidersTypes.EdkWrappingAlgorithm.IntermediateKeyWrapping" + "(" + _dafny.String(data.IntermediateKeyWrapping) + ")"
  4969  		}
  4970  	default:
  4971  		{
  4972  			return "<unexpected>"
  4973  		}
  4974  	}
  4975  }
  4976  
  4977  func (_this EdkWrappingAlgorithm) Equals(other EdkWrappingAlgorithm) bool {
  4978  	switch data1 := _this.Get_().(type) {
  4979  	case EdkWrappingAlgorithm_DIRECT__KEY__WRAPPING:
  4980  		{
  4981  			data2, ok := other.Get_().(EdkWrappingAlgorithm_DIRECT__KEY__WRAPPING)
  4982  			return ok && data1.DIRECT__KEY__WRAPPING.Equals(data2.DIRECT__KEY__WRAPPING)
  4983  		}
  4984  	case EdkWrappingAlgorithm_IntermediateKeyWrapping:
  4985  		{
  4986  			data2, ok := other.Get_().(EdkWrappingAlgorithm_IntermediateKeyWrapping)
  4987  			return ok && data1.IntermediateKeyWrapping.Equals(data2.IntermediateKeyWrapping)
  4988  		}
  4989  	default:
  4990  		{
  4991  			return false // unexpected
  4992  		}
  4993  	}
  4994  }
  4995  
  4996  func (_this EdkWrappingAlgorithm) EqualsGeneric(other interface{}) bool {
  4997  	typed, ok := other.(EdkWrappingAlgorithm)
  4998  	return ok && _this.Equals(typed)
  4999  }
  5000  
  5001  func Type_EdkWrappingAlgorithm_() _dafny.TypeDescriptor {
  5002  	return type_EdkWrappingAlgorithm_{}
  5003  }
  5004  
  5005  type type_EdkWrappingAlgorithm_ struct {
  5006  }
  5007  
  5008  func (_this type_EdkWrappingAlgorithm_) Default() interface{} {
  5009  	return Companion_EdkWrappingAlgorithm_.Default()
  5010  }
  5011  
  5012  func (_this type_EdkWrappingAlgorithm_) String() string {
  5013  	return "AwsCryptographyMaterialProvidersTypes.EdkWrappingAlgorithm"
  5014  }
  5015  func (_this EdkWrappingAlgorithm) ParentTraits_() []*_dafny.TraitID {
  5016  	return [](*_dafny.TraitID){}
  5017  }
  5018  
  5019  var _ _dafny.TraitOffspring = EdkWrappingAlgorithm{}
  5020  
  5021  // End of datatype EdkWrappingAlgorithm
  5022  
  5023  // Definition of datatype Encrypt
  5024  type Encrypt struct {
  5025  	Data_Encrypt_
  5026  }
  5027  
  5028  func (_this Encrypt) Get_() Data_Encrypt_ {
  5029  	return _this.Data_Encrypt_
  5030  }
  5031  
  5032  type Data_Encrypt_ interface {
  5033  	isEncrypt()
  5034  }
  5035  
  5036  type CompanionStruct_Encrypt_ struct {
  5037  }
  5038  
  5039  var Companion_Encrypt_ = CompanionStruct_Encrypt_{}
  5040  
  5041  type Encrypt_AES__GCM struct {
  5042  	AES__GCM m_AwsCryptographyPrimitivesTypes.AES__GCM
  5043  }
  5044  
  5045  func (Encrypt_AES__GCM) isEncrypt() {}
  5046  
  5047  func (CompanionStruct_Encrypt_) Create_AES__GCM_(AES__GCM m_AwsCryptographyPrimitivesTypes.AES__GCM) Encrypt {
  5048  	return Encrypt{Encrypt_AES__GCM{AES__GCM}}
  5049  }
  5050  
  5051  func (_this Encrypt) Is_AES__GCM() bool {
  5052  	_, ok := _this.Get_().(Encrypt_AES__GCM)
  5053  	return ok
  5054  }
  5055  
  5056  func (CompanionStruct_Encrypt_) Default() Encrypt {
  5057  	return Companion_Encrypt_.Create_AES__GCM_(m_AwsCryptographyPrimitivesTypes.Companion_AES__GCM_.Default())
  5058  }
  5059  
  5060  func (_this Encrypt) Dtor_AES__GCM() m_AwsCryptographyPrimitivesTypes.AES__GCM {
  5061  	return _this.Get_().(Encrypt_AES__GCM).AES__GCM
  5062  }
  5063  
  5064  func (_this Encrypt) String() string {
  5065  	switch data := _this.Get_().(type) {
  5066  	case nil:
  5067  		return "null"
  5068  	case Encrypt_AES__GCM:
  5069  		{
  5070  			return "AwsCryptographyMaterialProvidersTypes.Encrypt.AES_GCM" + "(" + _dafny.String(data.AES__GCM) + ")"
  5071  		}
  5072  	default:
  5073  		{
  5074  			return "<unexpected>"
  5075  		}
  5076  	}
  5077  }
  5078  
  5079  func (_this Encrypt) Equals(other Encrypt) bool {
  5080  	switch data1 := _this.Get_().(type) {
  5081  	case Encrypt_AES__GCM:
  5082  		{
  5083  			data2, ok := other.Get_().(Encrypt_AES__GCM)
  5084  			return ok && data1.AES__GCM.Equals(data2.AES__GCM)
  5085  		}
  5086  	default:
  5087  		{
  5088  			return false // unexpected
  5089  		}
  5090  	}
  5091  }
  5092  
  5093  func (_this Encrypt) EqualsGeneric(other interface{}) bool {
  5094  	typed, ok := other.(Encrypt)
  5095  	return ok && _this.Equals(typed)
  5096  }
  5097  
  5098  func Type_Encrypt_() _dafny.TypeDescriptor {
  5099  	return type_Encrypt_{}
  5100  }
  5101  
  5102  type type_Encrypt_ struct {
  5103  }
  5104  
  5105  func (_this type_Encrypt_) Default() interface{} {
  5106  	return Companion_Encrypt_.Default()
  5107  }
  5108  
  5109  func (_this type_Encrypt_) String() string {
  5110  	return "AwsCryptographyMaterialProvidersTypes.Encrypt"
  5111  }
  5112  func (_this Encrypt) ParentTraits_() []*_dafny.TraitID {
  5113  	return [](*_dafny.TraitID){}
  5114  }
  5115  
  5116  var _ _dafny.TraitOffspring = Encrypt{}
  5117  
  5118  // End of datatype Encrypt
  5119  
  5120  // Definition of datatype EncryptedDataKey
  5121  type EncryptedDataKey struct {
  5122  	Data_EncryptedDataKey_
  5123  }
  5124  
  5125  func (_this EncryptedDataKey) Get_() Data_EncryptedDataKey_ {
  5126  	return _this.Data_EncryptedDataKey_
  5127  }
  5128  
  5129  type Data_EncryptedDataKey_ interface {
  5130  	isEncryptedDataKey()
  5131  }
  5132  
  5133  type CompanionStruct_EncryptedDataKey_ struct {
  5134  }
  5135  
  5136  var Companion_EncryptedDataKey_ = CompanionStruct_EncryptedDataKey_{}
  5137  
  5138  type EncryptedDataKey_EncryptedDataKey struct {
  5139  	KeyProviderId   _dafny.Sequence
  5140  	KeyProviderInfo _dafny.Sequence
  5141  	Ciphertext      _dafny.Sequence
  5142  }
  5143  
  5144  func (EncryptedDataKey_EncryptedDataKey) isEncryptedDataKey() {}
  5145  
  5146  func (CompanionStruct_EncryptedDataKey_) Create_EncryptedDataKey_(KeyProviderId _dafny.Sequence, KeyProviderInfo _dafny.Sequence, Ciphertext _dafny.Sequence) EncryptedDataKey {
  5147  	return EncryptedDataKey{EncryptedDataKey_EncryptedDataKey{KeyProviderId, KeyProviderInfo, Ciphertext}}
  5148  }
  5149  
  5150  func (_this EncryptedDataKey) Is_EncryptedDataKey() bool {
  5151  	_, ok := _this.Get_().(EncryptedDataKey_EncryptedDataKey)
  5152  	return ok
  5153  }
  5154  
  5155  func (CompanionStruct_EncryptedDataKey_) Default() EncryptedDataKey {
  5156  	return Companion_EncryptedDataKey_.Create_EncryptedDataKey_(m_UTF8.Companion_ValidUTF8Bytes_.Witness(), _dafny.EmptySeq, _dafny.EmptySeq)
  5157  }
  5158  
  5159  func (_this EncryptedDataKey) Dtor_keyProviderId() _dafny.Sequence {
  5160  	return _this.Get_().(EncryptedDataKey_EncryptedDataKey).KeyProviderId
  5161  }
  5162  
  5163  func (_this EncryptedDataKey) Dtor_keyProviderInfo() _dafny.Sequence {
  5164  	return _this.Get_().(EncryptedDataKey_EncryptedDataKey).KeyProviderInfo
  5165  }
  5166  
  5167  func (_this EncryptedDataKey) Dtor_ciphertext() _dafny.Sequence {
  5168  	return _this.Get_().(EncryptedDataKey_EncryptedDataKey).Ciphertext
  5169  }
  5170  
  5171  func (_this EncryptedDataKey) String() string {
  5172  	switch data := _this.Get_().(type) {
  5173  	case nil:
  5174  		return "null"
  5175  	case EncryptedDataKey_EncryptedDataKey:
  5176  		{
  5177  			return "AwsCryptographyMaterialProvidersTypes.EncryptedDataKey.EncryptedDataKey" + "(" + _dafny.String(data.KeyProviderId) + ", " + _dafny.String(data.KeyProviderInfo) + ", " + _dafny.String(data.Ciphertext) + ")"
  5178  		}
  5179  	default:
  5180  		{
  5181  			return "<unexpected>"
  5182  		}
  5183  	}
  5184  }
  5185  
  5186  func (_this EncryptedDataKey) Equals(other EncryptedDataKey) bool {
  5187  	switch data1 := _this.Get_().(type) {
  5188  	case EncryptedDataKey_EncryptedDataKey:
  5189  		{
  5190  			data2, ok := other.Get_().(EncryptedDataKey_EncryptedDataKey)
  5191  			return ok && data1.KeyProviderId.Equals(data2.KeyProviderId) && data1.KeyProviderInfo.Equals(data2.KeyProviderInfo) && data1.Ciphertext.Equals(data2.Ciphertext)
  5192  		}
  5193  	default:
  5194  		{
  5195  			return false // unexpected
  5196  		}
  5197  	}
  5198  }
  5199  
  5200  func (_this EncryptedDataKey) EqualsGeneric(other interface{}) bool {
  5201  	typed, ok := other.(EncryptedDataKey)
  5202  	return ok && _this.Equals(typed)
  5203  }
  5204  
  5205  func Type_EncryptedDataKey_() _dafny.TypeDescriptor {
  5206  	return type_EncryptedDataKey_{}
  5207  }
  5208  
  5209  type type_EncryptedDataKey_ struct {
  5210  }
  5211  
  5212  func (_this type_EncryptedDataKey_) Default() interface{} {
  5213  	return Companion_EncryptedDataKey_.Default()
  5214  }
  5215  
  5216  func (_this type_EncryptedDataKey_) String() string {
  5217  	return "AwsCryptographyMaterialProvidersTypes.EncryptedDataKey"
  5218  }
  5219  func (_this EncryptedDataKey) ParentTraits_() []*_dafny.TraitID {
  5220  	return [](*_dafny.TraitID){}
  5221  }
  5222  
  5223  var _ _dafny.TraitOffspring = EncryptedDataKey{}
  5224  
  5225  // End of datatype EncryptedDataKey
  5226  
  5227  // Definition of datatype EncryptionMaterials
  5228  type EncryptionMaterials struct {
  5229  	Data_EncryptionMaterials_
  5230  }
  5231  
  5232  func (_this EncryptionMaterials) Get_() Data_EncryptionMaterials_ {
  5233  	return _this.Data_EncryptionMaterials_
  5234  }
  5235  
  5236  type Data_EncryptionMaterials_ interface {
  5237  	isEncryptionMaterials()
  5238  }
  5239  
  5240  type CompanionStruct_EncryptionMaterials_ struct {
  5241  }
  5242  
  5243  var Companion_EncryptionMaterials_ = CompanionStruct_EncryptionMaterials_{}
  5244  
  5245  type EncryptionMaterials_EncryptionMaterials struct {
  5246  	AlgorithmSuite                AlgorithmSuiteInfo
  5247  	EncryptionContext             _dafny.Map
  5248  	EncryptedDataKeys             _dafny.Sequence
  5249  	RequiredEncryptionContextKeys _dafny.Sequence
  5250  	PlaintextDataKey              m_Wrappers.Option
  5251  	SigningKey                    m_Wrappers.Option
  5252  	SymmetricSigningKeys          m_Wrappers.Option
  5253  }
  5254  
  5255  func (EncryptionMaterials_EncryptionMaterials) isEncryptionMaterials() {}
  5256  
  5257  func (CompanionStruct_EncryptionMaterials_) Create_EncryptionMaterials_(AlgorithmSuite AlgorithmSuiteInfo, EncryptionContext _dafny.Map, EncryptedDataKeys _dafny.Sequence, RequiredEncryptionContextKeys _dafny.Sequence, PlaintextDataKey m_Wrappers.Option, SigningKey m_Wrappers.Option, SymmetricSigningKeys m_Wrappers.Option) EncryptionMaterials {
  5258  	return EncryptionMaterials{EncryptionMaterials_EncryptionMaterials{AlgorithmSuite, EncryptionContext, EncryptedDataKeys, RequiredEncryptionContextKeys, PlaintextDataKey, SigningKey, SymmetricSigningKeys}}
  5259  }
  5260  
  5261  func (_this EncryptionMaterials) Is_EncryptionMaterials() bool {
  5262  	_, ok := _this.Get_().(EncryptionMaterials_EncryptionMaterials)
  5263  	return ok
  5264  }
  5265  
  5266  func (CompanionStruct_EncryptionMaterials_) Default() EncryptionMaterials {
  5267  	return Companion_EncryptionMaterials_.Create_EncryptionMaterials_(Companion_AlgorithmSuiteInfo_.Default(), _dafny.EmptyMap, _dafny.EmptySeq, _dafny.EmptySeq, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default())
  5268  }
  5269  
  5270  func (_this EncryptionMaterials) Dtor_algorithmSuite() AlgorithmSuiteInfo {
  5271  	return _this.Get_().(EncryptionMaterials_EncryptionMaterials).AlgorithmSuite
  5272  }
  5273  
  5274  func (_this EncryptionMaterials) Dtor_encryptionContext() _dafny.Map {
  5275  	return _this.Get_().(EncryptionMaterials_EncryptionMaterials).EncryptionContext
  5276  }
  5277  
  5278  func (_this EncryptionMaterials) Dtor_encryptedDataKeys() _dafny.Sequence {
  5279  	return _this.Get_().(EncryptionMaterials_EncryptionMaterials).EncryptedDataKeys
  5280  }
  5281  
  5282  func (_this EncryptionMaterials) Dtor_requiredEncryptionContextKeys() _dafny.Sequence {
  5283  	return _this.Get_().(EncryptionMaterials_EncryptionMaterials).RequiredEncryptionContextKeys
  5284  }
  5285  
  5286  func (_this EncryptionMaterials) Dtor_plaintextDataKey() m_Wrappers.Option {
  5287  	return _this.Get_().(EncryptionMaterials_EncryptionMaterials).PlaintextDataKey
  5288  }
  5289  
  5290  func (_this EncryptionMaterials) Dtor_signingKey() m_Wrappers.Option {
  5291  	return _this.Get_().(EncryptionMaterials_EncryptionMaterials).SigningKey
  5292  }
  5293  
  5294  func (_this EncryptionMaterials) Dtor_symmetricSigningKeys() m_Wrappers.Option {
  5295  	return _this.Get_().(EncryptionMaterials_EncryptionMaterials).SymmetricSigningKeys
  5296  }
  5297  
  5298  func (_this EncryptionMaterials) String() string {
  5299  	switch data := _this.Get_().(type) {
  5300  	case nil:
  5301  		return "null"
  5302  	case EncryptionMaterials_EncryptionMaterials:
  5303  		{
  5304  			return "AwsCryptographyMaterialProvidersTypes.EncryptionMaterials.EncryptionMaterials" + "(" + _dafny.String(data.AlgorithmSuite) + ", " + _dafny.String(data.EncryptionContext) + ", " + _dafny.String(data.EncryptedDataKeys) + ", " + _dafny.String(data.RequiredEncryptionContextKeys) + ", " + _dafny.String(data.PlaintextDataKey) + ", " + _dafny.String(data.SigningKey) + ", " + _dafny.String(data.SymmetricSigningKeys) + ")"
  5305  		}
  5306  	default:
  5307  		{
  5308  			return "<unexpected>"
  5309  		}
  5310  	}
  5311  }
  5312  
  5313  func (_this EncryptionMaterials) Equals(other EncryptionMaterials) bool {
  5314  	switch data1 := _this.Get_().(type) {
  5315  	case EncryptionMaterials_EncryptionMaterials:
  5316  		{
  5317  			data2, ok := other.Get_().(EncryptionMaterials_EncryptionMaterials)
  5318  			return ok && data1.AlgorithmSuite.Equals(data2.AlgorithmSuite) && data1.EncryptionContext.Equals(data2.EncryptionContext) && data1.EncryptedDataKeys.Equals(data2.EncryptedDataKeys) && data1.RequiredEncryptionContextKeys.Equals(data2.RequiredEncryptionContextKeys) && data1.PlaintextDataKey.Equals(data2.PlaintextDataKey) && data1.SigningKey.Equals(data2.SigningKey) && data1.SymmetricSigningKeys.Equals(data2.SymmetricSigningKeys)
  5319  		}
  5320  	default:
  5321  		{
  5322  			return false // unexpected
  5323  		}
  5324  	}
  5325  }
  5326  
  5327  func (_this EncryptionMaterials) EqualsGeneric(other interface{}) bool {
  5328  	typed, ok := other.(EncryptionMaterials)
  5329  	return ok && _this.Equals(typed)
  5330  }
  5331  
  5332  func Type_EncryptionMaterials_() _dafny.TypeDescriptor {
  5333  	return type_EncryptionMaterials_{}
  5334  }
  5335  
  5336  type type_EncryptionMaterials_ struct {
  5337  }
  5338  
  5339  func (_this type_EncryptionMaterials_) Default() interface{} {
  5340  	return Companion_EncryptionMaterials_.Default()
  5341  }
  5342  
  5343  func (_this type_EncryptionMaterials_) String() string {
  5344  	return "AwsCryptographyMaterialProvidersTypes.EncryptionMaterials"
  5345  }
  5346  func (_this EncryptionMaterials) ParentTraits_() []*_dafny.TraitID {
  5347  	return [](*_dafny.TraitID){}
  5348  }
  5349  
  5350  var _ _dafny.TraitOffspring = EncryptionMaterials{}
  5351  
  5352  // End of datatype EncryptionMaterials
  5353  
  5354  // Definition of datatype EphemeralPrivateKeyToStaticPublicKeyInput
  5355  type EphemeralPrivateKeyToStaticPublicKeyInput struct {
  5356  	Data_EphemeralPrivateKeyToStaticPublicKeyInput_
  5357  }
  5358  
  5359  func (_this EphemeralPrivateKeyToStaticPublicKeyInput) Get_() Data_EphemeralPrivateKeyToStaticPublicKeyInput_ {
  5360  	return _this.Data_EphemeralPrivateKeyToStaticPublicKeyInput_
  5361  }
  5362  
  5363  type Data_EphemeralPrivateKeyToStaticPublicKeyInput_ interface {
  5364  	isEphemeralPrivateKeyToStaticPublicKeyInput()
  5365  }
  5366  
  5367  type CompanionStruct_EphemeralPrivateKeyToStaticPublicKeyInput_ struct {
  5368  }
  5369  
  5370  var Companion_EphemeralPrivateKeyToStaticPublicKeyInput_ = CompanionStruct_EphemeralPrivateKeyToStaticPublicKeyInput_{}
  5371  
  5372  type EphemeralPrivateKeyToStaticPublicKeyInput_EphemeralPrivateKeyToStaticPublicKeyInput struct {
  5373  	RecipientPublicKey _dafny.Sequence
  5374  }
  5375  
  5376  func (EphemeralPrivateKeyToStaticPublicKeyInput_EphemeralPrivateKeyToStaticPublicKeyInput) isEphemeralPrivateKeyToStaticPublicKeyInput() {
  5377  }
  5378  
  5379  func (CompanionStruct_EphemeralPrivateKeyToStaticPublicKeyInput_) Create_EphemeralPrivateKeyToStaticPublicKeyInput_(RecipientPublicKey _dafny.Sequence) EphemeralPrivateKeyToStaticPublicKeyInput {
  5380  	return EphemeralPrivateKeyToStaticPublicKeyInput{EphemeralPrivateKeyToStaticPublicKeyInput_EphemeralPrivateKeyToStaticPublicKeyInput{RecipientPublicKey}}
  5381  }
  5382  
  5383  func (_this EphemeralPrivateKeyToStaticPublicKeyInput) Is_EphemeralPrivateKeyToStaticPublicKeyInput() bool {
  5384  	_, ok := _this.Get_().(EphemeralPrivateKeyToStaticPublicKeyInput_EphemeralPrivateKeyToStaticPublicKeyInput)
  5385  	return ok
  5386  }
  5387  
  5388  func (CompanionStruct_EphemeralPrivateKeyToStaticPublicKeyInput_) Default() EphemeralPrivateKeyToStaticPublicKeyInput {
  5389  	return Companion_EphemeralPrivateKeyToStaticPublicKeyInput_.Create_EphemeralPrivateKeyToStaticPublicKeyInput_(_dafny.EmptySeq)
  5390  }
  5391  
  5392  func (_this EphemeralPrivateKeyToStaticPublicKeyInput) Dtor_recipientPublicKey() _dafny.Sequence {
  5393  	return _this.Get_().(EphemeralPrivateKeyToStaticPublicKeyInput_EphemeralPrivateKeyToStaticPublicKeyInput).RecipientPublicKey
  5394  }
  5395  
  5396  func (_this EphemeralPrivateKeyToStaticPublicKeyInput) String() string {
  5397  	switch data := _this.Get_().(type) {
  5398  	case nil:
  5399  		return "null"
  5400  	case EphemeralPrivateKeyToStaticPublicKeyInput_EphemeralPrivateKeyToStaticPublicKeyInput:
  5401  		{
  5402  			return "AwsCryptographyMaterialProvidersTypes.EphemeralPrivateKeyToStaticPublicKeyInput.EphemeralPrivateKeyToStaticPublicKeyInput" + "(" + _dafny.String(data.RecipientPublicKey) + ")"
  5403  		}
  5404  	default:
  5405  		{
  5406  			return "<unexpected>"
  5407  		}
  5408  	}
  5409  }
  5410  
  5411  func (_this EphemeralPrivateKeyToStaticPublicKeyInput) Equals(other EphemeralPrivateKeyToStaticPublicKeyInput) bool {
  5412  	switch data1 := _this.Get_().(type) {
  5413  	case EphemeralPrivateKeyToStaticPublicKeyInput_EphemeralPrivateKeyToStaticPublicKeyInput:
  5414  		{
  5415  			data2, ok := other.Get_().(EphemeralPrivateKeyToStaticPublicKeyInput_EphemeralPrivateKeyToStaticPublicKeyInput)
  5416  			return ok && data1.RecipientPublicKey.Equals(data2.RecipientPublicKey)
  5417  		}
  5418  	default:
  5419  		{
  5420  			return false // unexpected
  5421  		}
  5422  	}
  5423  }
  5424  
  5425  func (_this EphemeralPrivateKeyToStaticPublicKeyInput) EqualsGeneric(other interface{}) bool {
  5426  	typed, ok := other.(EphemeralPrivateKeyToStaticPublicKeyInput)
  5427  	return ok && _this.Equals(typed)
  5428  }
  5429  
  5430  func Type_EphemeralPrivateKeyToStaticPublicKeyInput_() _dafny.TypeDescriptor {
  5431  	return type_EphemeralPrivateKeyToStaticPublicKeyInput_{}
  5432  }
  5433  
  5434  type type_EphemeralPrivateKeyToStaticPublicKeyInput_ struct {
  5435  }
  5436  
  5437  func (_this type_EphemeralPrivateKeyToStaticPublicKeyInput_) Default() interface{} {
  5438  	return Companion_EphemeralPrivateKeyToStaticPublicKeyInput_.Default()
  5439  }
  5440  
  5441  func (_this type_EphemeralPrivateKeyToStaticPublicKeyInput_) String() string {
  5442  	return "AwsCryptographyMaterialProvidersTypes.EphemeralPrivateKeyToStaticPublicKeyInput"
  5443  }
  5444  func (_this EphemeralPrivateKeyToStaticPublicKeyInput) ParentTraits_() []*_dafny.TraitID {
  5445  	return [](*_dafny.TraitID){}
  5446  }
  5447  
  5448  var _ _dafny.TraitOffspring = EphemeralPrivateKeyToStaticPublicKeyInput{}
  5449  
  5450  // End of datatype EphemeralPrivateKeyToStaticPublicKeyInput
  5451  
  5452  // Definition of datatype ESDKAlgorithmSuiteId
  5453  type ESDKAlgorithmSuiteId struct {
  5454  	Data_ESDKAlgorithmSuiteId_
  5455  }
  5456  
  5457  func (_this ESDKAlgorithmSuiteId) Get_() Data_ESDKAlgorithmSuiteId_ {
  5458  	return _this.Data_ESDKAlgorithmSuiteId_
  5459  }
  5460  
  5461  type Data_ESDKAlgorithmSuiteId_ interface {
  5462  	isESDKAlgorithmSuiteId()
  5463  }
  5464  
  5465  type CompanionStruct_ESDKAlgorithmSuiteId_ struct {
  5466  }
  5467  
  5468  var Companion_ESDKAlgorithmSuiteId_ = CompanionStruct_ESDKAlgorithmSuiteId_{}
  5469  
  5470  type ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__NO__KDF struct {
  5471  }
  5472  
  5473  func (ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__NO__KDF) isESDKAlgorithmSuiteId() {}
  5474  
  5475  func (CompanionStruct_ESDKAlgorithmSuiteId_) Create_ALG__AES__128__GCM__IV12__TAG16__NO__KDF_() ESDKAlgorithmSuiteId {
  5476  	return ESDKAlgorithmSuiteId{ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__NO__KDF{}}
  5477  }
  5478  
  5479  func (_this ESDKAlgorithmSuiteId) Is_ALG__AES__128__GCM__IV12__TAG16__NO__KDF() bool {
  5480  	_, ok := _this.Get_().(ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__NO__KDF)
  5481  	return ok
  5482  }
  5483  
  5484  type ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__NO__KDF struct {
  5485  }
  5486  
  5487  func (ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__NO__KDF) isESDKAlgorithmSuiteId() {}
  5488  
  5489  func (CompanionStruct_ESDKAlgorithmSuiteId_) Create_ALG__AES__192__GCM__IV12__TAG16__NO__KDF_() ESDKAlgorithmSuiteId {
  5490  	return ESDKAlgorithmSuiteId{ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__NO__KDF{}}
  5491  }
  5492  
  5493  func (_this ESDKAlgorithmSuiteId) Is_ALG__AES__192__GCM__IV12__TAG16__NO__KDF() bool {
  5494  	_, ok := _this.Get_().(ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__NO__KDF)
  5495  	return ok
  5496  }
  5497  
  5498  type ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__NO__KDF struct {
  5499  }
  5500  
  5501  func (ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__NO__KDF) isESDKAlgorithmSuiteId() {}
  5502  
  5503  func (CompanionStruct_ESDKAlgorithmSuiteId_) Create_ALG__AES__256__GCM__IV12__TAG16__NO__KDF_() ESDKAlgorithmSuiteId {
  5504  	return ESDKAlgorithmSuiteId{ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__NO__KDF{}}
  5505  }
  5506  
  5507  func (_this ESDKAlgorithmSuiteId) Is_ALG__AES__256__GCM__IV12__TAG16__NO__KDF() bool {
  5508  	_, ok := _this.Get_().(ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__NO__KDF)
  5509  	return ok
  5510  }
  5511  
  5512  type ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256 struct {
  5513  }
  5514  
  5515  func (ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256) isESDKAlgorithmSuiteId() {}
  5516  
  5517  func (CompanionStruct_ESDKAlgorithmSuiteId_) Create_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256_() ESDKAlgorithmSuiteId {
  5518  	return ESDKAlgorithmSuiteId{ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256{}}
  5519  }
  5520  
  5521  func (_this ESDKAlgorithmSuiteId) Is_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256() bool {
  5522  	_, ok := _this.Get_().(ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256)
  5523  	return ok
  5524  }
  5525  
  5526  type ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA256 struct {
  5527  }
  5528  
  5529  func (ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA256) isESDKAlgorithmSuiteId() {}
  5530  
  5531  func (CompanionStruct_ESDKAlgorithmSuiteId_) Create_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA256_() ESDKAlgorithmSuiteId {
  5532  	return ESDKAlgorithmSuiteId{ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA256{}}
  5533  }
  5534  
  5535  func (_this ESDKAlgorithmSuiteId) Is_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA256() bool {
  5536  	_, ok := _this.Get_().(ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA256)
  5537  	return ok
  5538  }
  5539  
  5540  type ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA256 struct {
  5541  }
  5542  
  5543  func (ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA256) isESDKAlgorithmSuiteId() {}
  5544  
  5545  func (CompanionStruct_ESDKAlgorithmSuiteId_) Create_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA256_() ESDKAlgorithmSuiteId {
  5546  	return ESDKAlgorithmSuiteId{ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA256{}}
  5547  }
  5548  
  5549  func (_this ESDKAlgorithmSuiteId) Is_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA256() bool {
  5550  	_, ok := _this.Get_().(ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA256)
  5551  	return ok
  5552  }
  5553  
  5554  type ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256__ECDSA__P256 struct {
  5555  }
  5556  
  5557  func (ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256__ECDSA__P256) isESDKAlgorithmSuiteId() {
  5558  }
  5559  
  5560  func (CompanionStruct_ESDKAlgorithmSuiteId_) Create_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256__ECDSA__P256_() ESDKAlgorithmSuiteId {
  5561  	return ESDKAlgorithmSuiteId{ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256__ECDSA__P256{}}
  5562  }
  5563  
  5564  func (_this ESDKAlgorithmSuiteId) Is_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256__ECDSA__P256() bool {
  5565  	_, ok := _this.Get_().(ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256__ECDSA__P256)
  5566  	return ok
  5567  }
  5568  
  5569  type ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384 struct {
  5570  }
  5571  
  5572  func (ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384) isESDKAlgorithmSuiteId() {
  5573  }
  5574  
  5575  func (CompanionStruct_ESDKAlgorithmSuiteId_) Create_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384_() ESDKAlgorithmSuiteId {
  5576  	return ESDKAlgorithmSuiteId{ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384{}}
  5577  }
  5578  
  5579  func (_this ESDKAlgorithmSuiteId) Is_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384() bool {
  5580  	_, ok := _this.Get_().(ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384)
  5581  	return ok
  5582  }
  5583  
  5584  type ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384 struct {
  5585  }
  5586  
  5587  func (ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384) isESDKAlgorithmSuiteId() {
  5588  }
  5589  
  5590  func (CompanionStruct_ESDKAlgorithmSuiteId_) Create_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384_() ESDKAlgorithmSuiteId {
  5591  	return ESDKAlgorithmSuiteId{ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384{}}
  5592  }
  5593  
  5594  func (_this ESDKAlgorithmSuiteId) Is_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384() bool {
  5595  	_, ok := _this.Get_().(ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384)
  5596  	return ok
  5597  }
  5598  
  5599  type ESDKAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY struct {
  5600  }
  5601  
  5602  func (ESDKAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY) isESDKAlgorithmSuiteId() {}
  5603  
  5604  func (CompanionStruct_ESDKAlgorithmSuiteId_) Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY_() ESDKAlgorithmSuiteId {
  5605  	return ESDKAlgorithmSuiteId{ESDKAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY{}}
  5606  }
  5607  
  5608  func (_this ESDKAlgorithmSuiteId) Is_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY() bool {
  5609  	_, ok := _this.Get_().(ESDKAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY)
  5610  	return ok
  5611  }
  5612  
  5613  type ESDKAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384 struct {
  5614  }
  5615  
  5616  func (ESDKAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384) isESDKAlgorithmSuiteId() {
  5617  }
  5618  
  5619  func (CompanionStruct_ESDKAlgorithmSuiteId_) Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384_() ESDKAlgorithmSuiteId {
  5620  	return ESDKAlgorithmSuiteId{ESDKAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384{}}
  5621  }
  5622  
  5623  func (_this ESDKAlgorithmSuiteId) Is_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384() bool {
  5624  	_, ok := _this.Get_().(ESDKAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384)
  5625  	return ok
  5626  }
  5627  
  5628  func (CompanionStruct_ESDKAlgorithmSuiteId_) Default() ESDKAlgorithmSuiteId {
  5629  	return Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__128__GCM__IV12__TAG16__NO__KDF_()
  5630  }
  5631  
  5632  func (_ CompanionStruct_ESDKAlgorithmSuiteId_) AllSingletonConstructors() _dafny.Iterator {
  5633  	i := -1
  5634  	return func() (interface{}, bool) {
  5635  		i++
  5636  		switch i {
  5637  		case 0:
  5638  			return Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__128__GCM__IV12__TAG16__NO__KDF_(), true
  5639  		case 1:
  5640  			return Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__192__GCM__IV12__TAG16__NO__KDF_(), true
  5641  		case 2:
  5642  			return Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__256__GCM__IV12__TAG16__NO__KDF_(), true
  5643  		case 3:
  5644  			return Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256_(), true
  5645  		case 4:
  5646  			return Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA256_(), true
  5647  		case 5:
  5648  			return Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA256_(), true
  5649  		case 6:
  5650  			return Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256__ECDSA__P256_(), true
  5651  		case 7:
  5652  			return Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384_(), true
  5653  		case 8:
  5654  			return Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384_(), true
  5655  		case 9:
  5656  			return Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY_(), true
  5657  		case 10:
  5658  			return Companion_ESDKAlgorithmSuiteId_.Create_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384_(), true
  5659  		default:
  5660  			return ESDKAlgorithmSuiteId{}, false
  5661  		}
  5662  	}
  5663  }
  5664  
  5665  func (_this ESDKAlgorithmSuiteId) String() string {
  5666  	switch _this.Get_().(type) {
  5667  	case nil:
  5668  		return "null"
  5669  	case ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__NO__KDF:
  5670  		{
  5671  			return "AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId.ALG_AES_128_GCM_IV12_TAG16_NO_KDF"
  5672  		}
  5673  	case ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__NO__KDF:
  5674  		{
  5675  			return "AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId.ALG_AES_192_GCM_IV12_TAG16_NO_KDF"
  5676  		}
  5677  	case ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__NO__KDF:
  5678  		{
  5679  			return "AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId.ALG_AES_256_GCM_IV12_TAG16_NO_KDF"
  5680  		}
  5681  	case ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256:
  5682  		{
  5683  			return "AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId.ALG_AES_128_GCM_IV12_TAG16_HKDF_SHA256"
  5684  		}
  5685  	case ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA256:
  5686  		{
  5687  			return "AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId.ALG_AES_192_GCM_IV12_TAG16_HKDF_SHA256"
  5688  		}
  5689  	case ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA256:
  5690  		{
  5691  			return "AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId.ALG_AES_256_GCM_IV12_TAG16_HKDF_SHA256"
  5692  		}
  5693  	case ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256__ECDSA__P256:
  5694  		{
  5695  			return "AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId.ALG_AES_128_GCM_IV12_TAG16_HKDF_SHA256_ECDSA_P256"
  5696  		}
  5697  	case ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384:
  5698  		{
  5699  			return "AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId.ALG_AES_192_GCM_IV12_TAG16_HKDF_SHA384_ECDSA_P384"
  5700  		}
  5701  	case ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384:
  5702  		{
  5703  			return "AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId.ALG_AES_256_GCM_IV12_TAG16_HKDF_SHA384_ECDSA_P384"
  5704  		}
  5705  	case ESDKAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY:
  5706  		{
  5707  			return "AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId.ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY"
  5708  		}
  5709  	case ESDKAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384:
  5710  		{
  5711  			return "AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId.ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY_ECDSA_P384"
  5712  		}
  5713  	default:
  5714  		{
  5715  			return "<unexpected>"
  5716  		}
  5717  	}
  5718  }
  5719  
  5720  func (_this ESDKAlgorithmSuiteId) Equals(other ESDKAlgorithmSuiteId) bool {
  5721  	switch _this.Get_().(type) {
  5722  	case ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__NO__KDF:
  5723  		{
  5724  			_, ok := other.Get_().(ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__NO__KDF)
  5725  			return ok
  5726  		}
  5727  	case ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__NO__KDF:
  5728  		{
  5729  			_, ok := other.Get_().(ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__NO__KDF)
  5730  			return ok
  5731  		}
  5732  	case ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__NO__KDF:
  5733  		{
  5734  			_, ok := other.Get_().(ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__NO__KDF)
  5735  			return ok
  5736  		}
  5737  	case ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256:
  5738  		{
  5739  			_, ok := other.Get_().(ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256)
  5740  			return ok
  5741  		}
  5742  	case ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA256:
  5743  		{
  5744  			_, ok := other.Get_().(ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA256)
  5745  			return ok
  5746  		}
  5747  	case ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA256:
  5748  		{
  5749  			_, ok := other.Get_().(ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA256)
  5750  			return ok
  5751  		}
  5752  	case ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256__ECDSA__P256:
  5753  		{
  5754  			_, ok := other.Get_().(ESDKAlgorithmSuiteId_ALG__AES__128__GCM__IV12__TAG16__HKDF__SHA256__ECDSA__P256)
  5755  			return ok
  5756  		}
  5757  	case ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384:
  5758  		{
  5759  			_, ok := other.Get_().(ESDKAlgorithmSuiteId_ALG__AES__192__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384)
  5760  			return ok
  5761  		}
  5762  	case ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384:
  5763  		{
  5764  			_, ok := other.Get_().(ESDKAlgorithmSuiteId_ALG__AES__256__GCM__IV12__TAG16__HKDF__SHA384__ECDSA__P384)
  5765  			return ok
  5766  		}
  5767  	case ESDKAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY:
  5768  		{
  5769  			_, ok := other.Get_().(ESDKAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY)
  5770  			return ok
  5771  		}
  5772  	case ESDKAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384:
  5773  		{
  5774  			_, ok := other.Get_().(ESDKAlgorithmSuiteId_ALG__AES__256__GCM__HKDF__SHA512__COMMIT__KEY__ECDSA__P384)
  5775  			return ok
  5776  		}
  5777  	default:
  5778  		{
  5779  			return false // unexpected
  5780  		}
  5781  	}
  5782  }
  5783  
  5784  func (_this ESDKAlgorithmSuiteId) EqualsGeneric(other interface{}) bool {
  5785  	typed, ok := other.(ESDKAlgorithmSuiteId)
  5786  	return ok && _this.Equals(typed)
  5787  }
  5788  
  5789  func Type_ESDKAlgorithmSuiteId_() _dafny.TypeDescriptor {
  5790  	return type_ESDKAlgorithmSuiteId_{}
  5791  }
  5792  
  5793  type type_ESDKAlgorithmSuiteId_ struct {
  5794  }
  5795  
  5796  func (_this type_ESDKAlgorithmSuiteId_) Default() interface{} {
  5797  	return Companion_ESDKAlgorithmSuiteId_.Default()
  5798  }
  5799  
  5800  func (_this type_ESDKAlgorithmSuiteId_) String() string {
  5801  	return "AwsCryptographyMaterialProvidersTypes.ESDKAlgorithmSuiteId"
  5802  }
  5803  func (_this ESDKAlgorithmSuiteId) ParentTraits_() []*_dafny.TraitID {
  5804  	return [](*_dafny.TraitID){}
  5805  }
  5806  
  5807  var _ _dafny.TraitOffspring = ESDKAlgorithmSuiteId{}
  5808  
  5809  // End of datatype ESDKAlgorithmSuiteId
  5810  
  5811  // Definition of datatype ESDKCommitmentPolicy
  5812  type ESDKCommitmentPolicy struct {
  5813  	Data_ESDKCommitmentPolicy_
  5814  }
  5815  
  5816  func (_this ESDKCommitmentPolicy) Get_() Data_ESDKCommitmentPolicy_ {
  5817  	return _this.Data_ESDKCommitmentPolicy_
  5818  }
  5819  
  5820  type Data_ESDKCommitmentPolicy_ interface {
  5821  	isESDKCommitmentPolicy()
  5822  }
  5823  
  5824  type CompanionStruct_ESDKCommitmentPolicy_ struct {
  5825  }
  5826  
  5827  var Companion_ESDKCommitmentPolicy_ = CompanionStruct_ESDKCommitmentPolicy_{}
  5828  
  5829  type ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT struct {
  5830  }
  5831  
  5832  func (ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT) isESDKCommitmentPolicy() {}
  5833  
  5834  func (CompanionStruct_ESDKCommitmentPolicy_) Create_FORBID__ENCRYPT__ALLOW__DECRYPT_() ESDKCommitmentPolicy {
  5835  	return ESDKCommitmentPolicy{ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT{}}
  5836  }
  5837  
  5838  func (_this ESDKCommitmentPolicy) Is_FORBID__ENCRYPT__ALLOW__DECRYPT() bool {
  5839  	_, ok := _this.Get_().(ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT)
  5840  	return ok
  5841  }
  5842  
  5843  type ESDKCommitmentPolicy_REQUIRE__ENCRYPT__ALLOW__DECRYPT struct {
  5844  }
  5845  
  5846  func (ESDKCommitmentPolicy_REQUIRE__ENCRYPT__ALLOW__DECRYPT) isESDKCommitmentPolicy() {}
  5847  
  5848  func (CompanionStruct_ESDKCommitmentPolicy_) Create_REQUIRE__ENCRYPT__ALLOW__DECRYPT_() ESDKCommitmentPolicy {
  5849  	return ESDKCommitmentPolicy{ESDKCommitmentPolicy_REQUIRE__ENCRYPT__ALLOW__DECRYPT{}}
  5850  }
  5851  
  5852  func (_this ESDKCommitmentPolicy) Is_REQUIRE__ENCRYPT__ALLOW__DECRYPT() bool {
  5853  	_, ok := _this.Get_().(ESDKCommitmentPolicy_REQUIRE__ENCRYPT__ALLOW__DECRYPT)
  5854  	return ok
  5855  }
  5856  
  5857  type ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT struct {
  5858  }
  5859  
  5860  func (ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT) isESDKCommitmentPolicy() {}
  5861  
  5862  func (CompanionStruct_ESDKCommitmentPolicy_) Create_REQUIRE__ENCRYPT__REQUIRE__DECRYPT_() ESDKCommitmentPolicy {
  5863  	return ESDKCommitmentPolicy{ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT{}}
  5864  }
  5865  
  5866  func (_this ESDKCommitmentPolicy) Is_REQUIRE__ENCRYPT__REQUIRE__DECRYPT() bool {
  5867  	_, ok := _this.Get_().(ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT)
  5868  	return ok
  5869  }
  5870  
  5871  func (CompanionStruct_ESDKCommitmentPolicy_) Default() ESDKCommitmentPolicy {
  5872  	return Companion_ESDKCommitmentPolicy_.Create_FORBID__ENCRYPT__ALLOW__DECRYPT_()
  5873  }
  5874  
  5875  func (_ CompanionStruct_ESDKCommitmentPolicy_) AllSingletonConstructors() _dafny.Iterator {
  5876  	i := -1
  5877  	return func() (interface{}, bool) {
  5878  		i++
  5879  		switch i {
  5880  		case 0:
  5881  			return Companion_ESDKCommitmentPolicy_.Create_FORBID__ENCRYPT__ALLOW__DECRYPT_(), true
  5882  		case 1:
  5883  			return Companion_ESDKCommitmentPolicy_.Create_REQUIRE__ENCRYPT__ALLOW__DECRYPT_(), true
  5884  		case 2:
  5885  			return Companion_ESDKCommitmentPolicy_.Create_REQUIRE__ENCRYPT__REQUIRE__DECRYPT_(), true
  5886  		default:
  5887  			return ESDKCommitmentPolicy{}, false
  5888  		}
  5889  	}
  5890  }
  5891  
  5892  func (_this ESDKCommitmentPolicy) String() string {
  5893  	switch _this.Get_().(type) {
  5894  	case nil:
  5895  		return "null"
  5896  	case ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT:
  5897  		{
  5898  			return "AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy.FORBID_ENCRYPT_ALLOW_DECRYPT"
  5899  		}
  5900  	case ESDKCommitmentPolicy_REQUIRE__ENCRYPT__ALLOW__DECRYPT:
  5901  		{
  5902  			return "AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy.REQUIRE_ENCRYPT_ALLOW_DECRYPT"
  5903  		}
  5904  	case ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT:
  5905  		{
  5906  			return "AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy.REQUIRE_ENCRYPT_REQUIRE_DECRYPT"
  5907  		}
  5908  	default:
  5909  		{
  5910  			return "<unexpected>"
  5911  		}
  5912  	}
  5913  }
  5914  
  5915  func (_this ESDKCommitmentPolicy) Equals(other ESDKCommitmentPolicy) bool {
  5916  	switch _this.Get_().(type) {
  5917  	case ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT:
  5918  		{
  5919  			_, ok := other.Get_().(ESDKCommitmentPolicy_FORBID__ENCRYPT__ALLOW__DECRYPT)
  5920  			return ok
  5921  		}
  5922  	case ESDKCommitmentPolicy_REQUIRE__ENCRYPT__ALLOW__DECRYPT:
  5923  		{
  5924  			_, ok := other.Get_().(ESDKCommitmentPolicy_REQUIRE__ENCRYPT__ALLOW__DECRYPT)
  5925  			return ok
  5926  		}
  5927  	case ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT:
  5928  		{
  5929  			_, ok := other.Get_().(ESDKCommitmentPolicy_REQUIRE__ENCRYPT__REQUIRE__DECRYPT)
  5930  			return ok
  5931  		}
  5932  	default:
  5933  		{
  5934  			return false // unexpected
  5935  		}
  5936  	}
  5937  }
  5938  
  5939  func (_this ESDKCommitmentPolicy) EqualsGeneric(other interface{}) bool {
  5940  	typed, ok := other.(ESDKCommitmentPolicy)
  5941  	return ok && _this.Equals(typed)
  5942  }
  5943  
  5944  func Type_ESDKCommitmentPolicy_() _dafny.TypeDescriptor {
  5945  	return type_ESDKCommitmentPolicy_{}
  5946  }
  5947  
  5948  type type_ESDKCommitmentPolicy_ struct {
  5949  }
  5950  
  5951  func (_this type_ESDKCommitmentPolicy_) Default() interface{} {
  5952  	return Companion_ESDKCommitmentPolicy_.Default()
  5953  }
  5954  
  5955  func (_this type_ESDKCommitmentPolicy_) String() string {
  5956  	return "AwsCryptographyMaterialProvidersTypes.ESDKCommitmentPolicy"
  5957  }
  5958  func (_this ESDKCommitmentPolicy) ParentTraits_() []*_dafny.TraitID {
  5959  	return [](*_dafny.TraitID){}
  5960  }
  5961  
  5962  var _ _dafny.TraitOffspring = ESDKCommitmentPolicy{}
  5963  
  5964  // End of datatype ESDKCommitmentPolicy
  5965  
  5966  // Definition of datatype GetBranchKeyIdInput
  5967  type GetBranchKeyIdInput struct {
  5968  	Data_GetBranchKeyIdInput_
  5969  }
  5970  
  5971  func (_this GetBranchKeyIdInput) Get_() Data_GetBranchKeyIdInput_ {
  5972  	return _this.Data_GetBranchKeyIdInput_
  5973  }
  5974  
  5975  type Data_GetBranchKeyIdInput_ interface {
  5976  	isGetBranchKeyIdInput()
  5977  }
  5978  
  5979  type CompanionStruct_GetBranchKeyIdInput_ struct {
  5980  }
  5981  
  5982  var Companion_GetBranchKeyIdInput_ = CompanionStruct_GetBranchKeyIdInput_{}
  5983  
  5984  type GetBranchKeyIdInput_GetBranchKeyIdInput struct {
  5985  	EncryptionContext _dafny.Map
  5986  }
  5987  
  5988  func (GetBranchKeyIdInput_GetBranchKeyIdInput) isGetBranchKeyIdInput() {}
  5989  
  5990  func (CompanionStruct_GetBranchKeyIdInput_) Create_GetBranchKeyIdInput_(EncryptionContext _dafny.Map) GetBranchKeyIdInput {
  5991  	return GetBranchKeyIdInput{GetBranchKeyIdInput_GetBranchKeyIdInput{EncryptionContext}}
  5992  }
  5993  
  5994  func (_this GetBranchKeyIdInput) Is_GetBranchKeyIdInput() bool {
  5995  	_, ok := _this.Get_().(GetBranchKeyIdInput_GetBranchKeyIdInput)
  5996  	return ok
  5997  }
  5998  
  5999  func (CompanionStruct_GetBranchKeyIdInput_) Default() GetBranchKeyIdInput {
  6000  	return Companion_GetBranchKeyIdInput_.Create_GetBranchKeyIdInput_(_dafny.EmptyMap)
  6001  }
  6002  
  6003  func (_this GetBranchKeyIdInput) Dtor_encryptionContext() _dafny.Map {
  6004  	return _this.Get_().(GetBranchKeyIdInput_GetBranchKeyIdInput).EncryptionContext
  6005  }
  6006  
  6007  func (_this GetBranchKeyIdInput) String() string {
  6008  	switch data := _this.Get_().(type) {
  6009  	case nil:
  6010  		return "null"
  6011  	case GetBranchKeyIdInput_GetBranchKeyIdInput:
  6012  		{
  6013  			return "AwsCryptographyMaterialProvidersTypes.GetBranchKeyIdInput.GetBranchKeyIdInput" + "(" + _dafny.String(data.EncryptionContext) + ")"
  6014  		}
  6015  	default:
  6016  		{
  6017  			return "<unexpected>"
  6018  		}
  6019  	}
  6020  }
  6021  
  6022  func (_this GetBranchKeyIdInput) Equals(other GetBranchKeyIdInput) bool {
  6023  	switch data1 := _this.Get_().(type) {
  6024  	case GetBranchKeyIdInput_GetBranchKeyIdInput:
  6025  		{
  6026  			data2, ok := other.Get_().(GetBranchKeyIdInput_GetBranchKeyIdInput)
  6027  			return ok && data1.EncryptionContext.Equals(data2.EncryptionContext)
  6028  		}
  6029  	default:
  6030  		{
  6031  			return false // unexpected
  6032  		}
  6033  	}
  6034  }
  6035  
  6036  func (_this GetBranchKeyIdInput) EqualsGeneric(other interface{}) bool {
  6037  	typed, ok := other.(GetBranchKeyIdInput)
  6038  	return ok && _this.Equals(typed)
  6039  }
  6040  
  6041  func Type_GetBranchKeyIdInput_() _dafny.TypeDescriptor {
  6042  	return type_GetBranchKeyIdInput_{}
  6043  }
  6044  
  6045  type type_GetBranchKeyIdInput_ struct {
  6046  }
  6047  
  6048  func (_this type_GetBranchKeyIdInput_) Default() interface{} {
  6049  	return Companion_GetBranchKeyIdInput_.Default()
  6050  }
  6051  
  6052  func (_this type_GetBranchKeyIdInput_) String() string {
  6053  	return "AwsCryptographyMaterialProvidersTypes.GetBranchKeyIdInput"
  6054  }
  6055  func (_this GetBranchKeyIdInput) ParentTraits_() []*_dafny.TraitID {
  6056  	return [](*_dafny.TraitID){}
  6057  }
  6058  
  6059  var _ _dafny.TraitOffspring = GetBranchKeyIdInput{}
  6060  
  6061  // End of datatype GetBranchKeyIdInput
  6062  
  6063  // Definition of datatype GetBranchKeyIdOutput
  6064  type GetBranchKeyIdOutput struct {
  6065  	Data_GetBranchKeyIdOutput_
  6066  }
  6067  
  6068  func (_this GetBranchKeyIdOutput) Get_() Data_GetBranchKeyIdOutput_ {
  6069  	return _this.Data_GetBranchKeyIdOutput_
  6070  }
  6071  
  6072  type Data_GetBranchKeyIdOutput_ interface {
  6073  	isGetBranchKeyIdOutput()
  6074  }
  6075  
  6076  type CompanionStruct_GetBranchKeyIdOutput_ struct {
  6077  }
  6078  
  6079  var Companion_GetBranchKeyIdOutput_ = CompanionStruct_GetBranchKeyIdOutput_{}
  6080  
  6081  type GetBranchKeyIdOutput_GetBranchKeyIdOutput struct {
  6082  	BranchKeyId _dafny.Sequence
  6083  }
  6084  
  6085  func (GetBranchKeyIdOutput_GetBranchKeyIdOutput) isGetBranchKeyIdOutput() {}
  6086  
  6087  func (CompanionStruct_GetBranchKeyIdOutput_) Create_GetBranchKeyIdOutput_(BranchKeyId _dafny.Sequence) GetBranchKeyIdOutput {
  6088  	return GetBranchKeyIdOutput{GetBranchKeyIdOutput_GetBranchKeyIdOutput{BranchKeyId}}
  6089  }
  6090  
  6091  func (_this GetBranchKeyIdOutput) Is_GetBranchKeyIdOutput() bool {
  6092  	_, ok := _this.Get_().(GetBranchKeyIdOutput_GetBranchKeyIdOutput)
  6093  	return ok
  6094  }
  6095  
  6096  func (CompanionStruct_GetBranchKeyIdOutput_) Default() GetBranchKeyIdOutput {
  6097  	return Companion_GetBranchKeyIdOutput_.Create_GetBranchKeyIdOutput_(_dafny.EmptySeq.SetString())
  6098  }
  6099  
  6100  func (_this GetBranchKeyIdOutput) Dtor_branchKeyId() _dafny.Sequence {
  6101  	return _this.Get_().(GetBranchKeyIdOutput_GetBranchKeyIdOutput).BranchKeyId
  6102  }
  6103  
  6104  func (_this GetBranchKeyIdOutput) String() string {
  6105  	switch data := _this.Get_().(type) {
  6106  	case nil:
  6107  		return "null"
  6108  	case GetBranchKeyIdOutput_GetBranchKeyIdOutput:
  6109  		{
  6110  			return "AwsCryptographyMaterialProvidersTypes.GetBranchKeyIdOutput.GetBranchKeyIdOutput" + "(" + _dafny.String(data.BranchKeyId) + ")"
  6111  		}
  6112  	default:
  6113  		{
  6114  			return "<unexpected>"
  6115  		}
  6116  	}
  6117  }
  6118  
  6119  func (_this GetBranchKeyIdOutput) Equals(other GetBranchKeyIdOutput) bool {
  6120  	switch data1 := _this.Get_().(type) {
  6121  	case GetBranchKeyIdOutput_GetBranchKeyIdOutput:
  6122  		{
  6123  			data2, ok := other.Get_().(GetBranchKeyIdOutput_GetBranchKeyIdOutput)
  6124  			return ok && data1.BranchKeyId.Equals(data2.BranchKeyId)
  6125  		}
  6126  	default:
  6127  		{
  6128  			return false // unexpected
  6129  		}
  6130  	}
  6131  }
  6132  
  6133  func (_this GetBranchKeyIdOutput) EqualsGeneric(other interface{}) bool {
  6134  	typed, ok := other.(GetBranchKeyIdOutput)
  6135  	return ok && _this.Equals(typed)
  6136  }
  6137  
  6138  func Type_GetBranchKeyIdOutput_() _dafny.TypeDescriptor {
  6139  	return type_GetBranchKeyIdOutput_{}
  6140  }
  6141  
  6142  type type_GetBranchKeyIdOutput_ struct {
  6143  }
  6144  
  6145  func (_this type_GetBranchKeyIdOutput_) Default() interface{} {
  6146  	return Companion_GetBranchKeyIdOutput_.Default()
  6147  }
  6148  
  6149  func (_this type_GetBranchKeyIdOutput_) String() string {
  6150  	return "AwsCryptographyMaterialProvidersTypes.GetBranchKeyIdOutput"
  6151  }
  6152  func (_this GetBranchKeyIdOutput) ParentTraits_() []*_dafny.TraitID {
  6153  	return [](*_dafny.TraitID){}
  6154  }
  6155  
  6156  var _ _dafny.TraitOffspring = GetBranchKeyIdOutput{}
  6157  
  6158  // End of datatype GetBranchKeyIdOutput
  6159  
  6160  // Definition of datatype GetCacheEntryInput
  6161  type GetCacheEntryInput struct {
  6162  	Data_GetCacheEntryInput_
  6163  }
  6164  
  6165  func (_this GetCacheEntryInput) Get_() Data_GetCacheEntryInput_ {
  6166  	return _this.Data_GetCacheEntryInput_
  6167  }
  6168  
  6169  type Data_GetCacheEntryInput_ interface {
  6170  	isGetCacheEntryInput()
  6171  }
  6172  
  6173  type CompanionStruct_GetCacheEntryInput_ struct {
  6174  }
  6175  
  6176  var Companion_GetCacheEntryInput_ = CompanionStruct_GetCacheEntryInput_{}
  6177  
  6178  type GetCacheEntryInput_GetCacheEntryInput struct {
  6179  	Identifier _dafny.Sequence
  6180  	BytesUsed  m_Wrappers.Option
  6181  }
  6182  
  6183  func (GetCacheEntryInput_GetCacheEntryInput) isGetCacheEntryInput() {}
  6184  
  6185  func (CompanionStruct_GetCacheEntryInput_) Create_GetCacheEntryInput_(Identifier _dafny.Sequence, BytesUsed m_Wrappers.Option) GetCacheEntryInput {
  6186  	return GetCacheEntryInput{GetCacheEntryInput_GetCacheEntryInput{Identifier, BytesUsed}}
  6187  }
  6188  
  6189  func (_this GetCacheEntryInput) Is_GetCacheEntryInput() bool {
  6190  	_, ok := _this.Get_().(GetCacheEntryInput_GetCacheEntryInput)
  6191  	return ok
  6192  }
  6193  
  6194  func (CompanionStruct_GetCacheEntryInput_) Default() GetCacheEntryInput {
  6195  	return Companion_GetCacheEntryInput_.Create_GetCacheEntryInput_(_dafny.EmptySeq, m_Wrappers.Companion_Option_.Default())
  6196  }
  6197  
  6198  func (_this GetCacheEntryInput) Dtor_identifier() _dafny.Sequence {
  6199  	return _this.Get_().(GetCacheEntryInput_GetCacheEntryInput).Identifier
  6200  }
  6201  
  6202  func (_this GetCacheEntryInput) Dtor_bytesUsed() m_Wrappers.Option {
  6203  	return _this.Get_().(GetCacheEntryInput_GetCacheEntryInput).BytesUsed
  6204  }
  6205  
  6206  func (_this GetCacheEntryInput) String() string {
  6207  	switch data := _this.Get_().(type) {
  6208  	case nil:
  6209  		return "null"
  6210  	case GetCacheEntryInput_GetCacheEntryInput:
  6211  		{
  6212  			return "AwsCryptographyMaterialProvidersTypes.GetCacheEntryInput.GetCacheEntryInput" + "(" + _dafny.String(data.Identifier) + ", " + _dafny.String(data.BytesUsed) + ")"
  6213  		}
  6214  	default:
  6215  		{
  6216  			return "<unexpected>"
  6217  		}
  6218  	}
  6219  }
  6220  
  6221  func (_this GetCacheEntryInput) Equals(other GetCacheEntryInput) bool {
  6222  	switch data1 := _this.Get_().(type) {
  6223  	case GetCacheEntryInput_GetCacheEntryInput:
  6224  		{
  6225  			data2, ok := other.Get_().(GetCacheEntryInput_GetCacheEntryInput)
  6226  			return ok && data1.Identifier.Equals(data2.Identifier) && data1.BytesUsed.Equals(data2.BytesUsed)
  6227  		}
  6228  	default:
  6229  		{
  6230  			return false // unexpected
  6231  		}
  6232  	}
  6233  }
  6234  
  6235  func (_this GetCacheEntryInput) EqualsGeneric(other interface{}) bool {
  6236  	typed, ok := other.(GetCacheEntryInput)
  6237  	return ok && _this.Equals(typed)
  6238  }
  6239  
  6240  func Type_GetCacheEntryInput_() _dafny.TypeDescriptor {
  6241  	return type_GetCacheEntryInput_{}
  6242  }
  6243  
  6244  type type_GetCacheEntryInput_ struct {
  6245  }
  6246  
  6247  func (_this type_GetCacheEntryInput_) Default() interface{} {
  6248  	return Companion_GetCacheEntryInput_.Default()
  6249  }
  6250  
  6251  func (_this type_GetCacheEntryInput_) String() string {
  6252  	return "AwsCryptographyMaterialProvidersTypes.GetCacheEntryInput"
  6253  }
  6254  func (_this GetCacheEntryInput) ParentTraits_() []*_dafny.TraitID {
  6255  	return [](*_dafny.TraitID){}
  6256  }
  6257  
  6258  var _ _dafny.TraitOffspring = GetCacheEntryInput{}
  6259  
  6260  // End of datatype GetCacheEntryInput
  6261  
  6262  // Definition of datatype GetCacheEntryOutput
  6263  type GetCacheEntryOutput struct {
  6264  	Data_GetCacheEntryOutput_
  6265  }
  6266  
  6267  func (_this GetCacheEntryOutput) Get_() Data_GetCacheEntryOutput_ {
  6268  	return _this.Data_GetCacheEntryOutput_
  6269  }
  6270  
  6271  type Data_GetCacheEntryOutput_ interface {
  6272  	isGetCacheEntryOutput()
  6273  }
  6274  
  6275  type CompanionStruct_GetCacheEntryOutput_ struct {
  6276  }
  6277  
  6278  var Companion_GetCacheEntryOutput_ = CompanionStruct_GetCacheEntryOutput_{}
  6279  
  6280  type GetCacheEntryOutput_GetCacheEntryOutput struct {
  6281  	Materials    Materials
  6282  	CreationTime int64
  6283  	ExpiryTime   int64
  6284  	MessagesUsed int32
  6285  	BytesUsed    int32
  6286  }
  6287  
  6288  func (GetCacheEntryOutput_GetCacheEntryOutput) isGetCacheEntryOutput() {}
  6289  
  6290  func (CompanionStruct_GetCacheEntryOutput_) Create_GetCacheEntryOutput_(Materials Materials, CreationTime int64, ExpiryTime int64, MessagesUsed int32, BytesUsed int32) GetCacheEntryOutput {
  6291  	return GetCacheEntryOutput{GetCacheEntryOutput_GetCacheEntryOutput{Materials, CreationTime, ExpiryTime, MessagesUsed, BytesUsed}}
  6292  }
  6293  
  6294  func (_this GetCacheEntryOutput) Is_GetCacheEntryOutput() bool {
  6295  	_, ok := _this.Get_().(GetCacheEntryOutput_GetCacheEntryOutput)
  6296  	return ok
  6297  }
  6298  
  6299  func (CompanionStruct_GetCacheEntryOutput_) Default() GetCacheEntryOutput {
  6300  	return Companion_GetCacheEntryOutput_.Create_GetCacheEntryOutput_(Companion_Materials_.Default(), int64(0), int64(0), int32(0), int32(0))
  6301  }
  6302  
  6303  func (_this GetCacheEntryOutput) Dtor_materials() Materials {
  6304  	return _this.Get_().(GetCacheEntryOutput_GetCacheEntryOutput).Materials
  6305  }
  6306  
  6307  func (_this GetCacheEntryOutput) Dtor_creationTime() int64 {
  6308  	return _this.Get_().(GetCacheEntryOutput_GetCacheEntryOutput).CreationTime
  6309  }
  6310  
  6311  func (_this GetCacheEntryOutput) Dtor_expiryTime() int64 {
  6312  	return _this.Get_().(GetCacheEntryOutput_GetCacheEntryOutput).ExpiryTime
  6313  }
  6314  
  6315  func (_this GetCacheEntryOutput) Dtor_messagesUsed() int32 {
  6316  	return _this.Get_().(GetCacheEntryOutput_GetCacheEntryOutput).MessagesUsed
  6317  }
  6318  
  6319  func (_this GetCacheEntryOutput) Dtor_bytesUsed() int32 {
  6320  	return _this.Get_().(GetCacheEntryOutput_GetCacheEntryOutput).BytesUsed
  6321  }
  6322  
  6323  func (_this GetCacheEntryOutput) String() string {
  6324  	switch data := _this.Get_().(type) {
  6325  	case nil:
  6326  		return "null"
  6327  	case GetCacheEntryOutput_GetCacheEntryOutput:
  6328  		{
  6329  			return "AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput.GetCacheEntryOutput" + "(" + _dafny.String(data.Materials) + ", " + _dafny.String(data.CreationTime) + ", " + _dafny.String(data.ExpiryTime) + ", " + _dafny.String(data.MessagesUsed) + ", " + _dafny.String(data.BytesUsed) + ")"
  6330  		}
  6331  	default:
  6332  		{
  6333  			return "<unexpected>"
  6334  		}
  6335  	}
  6336  }
  6337  
  6338  func (_this GetCacheEntryOutput) Equals(other GetCacheEntryOutput) bool {
  6339  	switch data1 := _this.Get_().(type) {
  6340  	case GetCacheEntryOutput_GetCacheEntryOutput:
  6341  		{
  6342  			data2, ok := other.Get_().(GetCacheEntryOutput_GetCacheEntryOutput)
  6343  			return ok && data1.Materials.Equals(data2.Materials) && data1.CreationTime == data2.CreationTime && data1.ExpiryTime == data2.ExpiryTime && data1.MessagesUsed == data2.MessagesUsed && data1.BytesUsed == data2.BytesUsed
  6344  		}
  6345  	default:
  6346  		{
  6347  			return false // unexpected
  6348  		}
  6349  	}
  6350  }
  6351  
  6352  func (_this GetCacheEntryOutput) EqualsGeneric(other interface{}) bool {
  6353  	typed, ok := other.(GetCacheEntryOutput)
  6354  	return ok && _this.Equals(typed)
  6355  }
  6356  
  6357  func Type_GetCacheEntryOutput_() _dafny.TypeDescriptor {
  6358  	return type_GetCacheEntryOutput_{}
  6359  }
  6360  
  6361  type type_GetCacheEntryOutput_ struct {
  6362  }
  6363  
  6364  func (_this type_GetCacheEntryOutput_) Default() interface{} {
  6365  	return Companion_GetCacheEntryOutput_.Default()
  6366  }
  6367  
  6368  func (_this type_GetCacheEntryOutput_) String() string {
  6369  	return "AwsCryptographyMaterialProvidersTypes.GetCacheEntryOutput"
  6370  }
  6371  func (_this GetCacheEntryOutput) ParentTraits_() []*_dafny.TraitID {
  6372  	return [](*_dafny.TraitID){}
  6373  }
  6374  
  6375  var _ _dafny.TraitOffspring = GetCacheEntryOutput{}
  6376  
  6377  // End of datatype GetCacheEntryOutput
  6378  
  6379  // Definition of datatype GetClientInput
  6380  type GetClientInput struct {
  6381  	Data_GetClientInput_
  6382  }
  6383  
  6384  func (_this GetClientInput) Get_() Data_GetClientInput_ {
  6385  	return _this.Data_GetClientInput_
  6386  }
  6387  
  6388  type Data_GetClientInput_ interface {
  6389  	isGetClientInput()
  6390  }
  6391  
  6392  type CompanionStruct_GetClientInput_ struct {
  6393  }
  6394  
  6395  var Companion_GetClientInput_ = CompanionStruct_GetClientInput_{}
  6396  
  6397  type GetClientInput_GetClientInput struct {
  6398  	Region _dafny.Sequence
  6399  }
  6400  
  6401  func (GetClientInput_GetClientInput) isGetClientInput() {}
  6402  
  6403  func (CompanionStruct_GetClientInput_) Create_GetClientInput_(Region _dafny.Sequence) GetClientInput {
  6404  	return GetClientInput{GetClientInput_GetClientInput{Region}}
  6405  }
  6406  
  6407  func (_this GetClientInput) Is_GetClientInput() bool {
  6408  	_, ok := _this.Get_().(GetClientInput_GetClientInput)
  6409  	return ok
  6410  }
  6411  
  6412  func (CompanionStruct_GetClientInput_) Default() GetClientInput {
  6413  	return Companion_GetClientInput_.Create_GetClientInput_(_dafny.EmptySeq.SetString())
  6414  }
  6415  
  6416  func (_this GetClientInput) Dtor_region() _dafny.Sequence {
  6417  	return _this.Get_().(GetClientInput_GetClientInput).Region
  6418  }
  6419  
  6420  func (_this GetClientInput) String() string {
  6421  	switch data := _this.Get_().(type) {
  6422  	case nil:
  6423  		return "null"
  6424  	case GetClientInput_GetClientInput:
  6425  		{
  6426  			return "AwsCryptographyMaterialProvidersTypes.GetClientInput.GetClientInput" + "(" + _dafny.String(data.Region) + ")"
  6427  		}
  6428  	default:
  6429  		{
  6430  			return "<unexpected>"
  6431  		}
  6432  	}
  6433  }
  6434  
  6435  func (_this GetClientInput) Equals(other GetClientInput) bool {
  6436  	switch data1 := _this.Get_().(type) {
  6437  	case GetClientInput_GetClientInput:
  6438  		{
  6439  			data2, ok := other.Get_().(GetClientInput_GetClientInput)
  6440  			return ok && data1.Region.Equals(data2.Region)
  6441  		}
  6442  	default:
  6443  		{
  6444  			return false // unexpected
  6445  		}
  6446  	}
  6447  }
  6448  
  6449  func (_this GetClientInput) EqualsGeneric(other interface{}) bool {
  6450  	typed, ok := other.(GetClientInput)
  6451  	return ok && _this.Equals(typed)
  6452  }
  6453  
  6454  func Type_GetClientInput_() _dafny.TypeDescriptor {
  6455  	return type_GetClientInput_{}
  6456  }
  6457  
  6458  type type_GetClientInput_ struct {
  6459  }
  6460  
  6461  func (_this type_GetClientInput_) Default() interface{} {
  6462  	return Companion_GetClientInput_.Default()
  6463  }
  6464  
  6465  func (_this type_GetClientInput_) String() string {
  6466  	return "AwsCryptographyMaterialProvidersTypes.GetClientInput"
  6467  }
  6468  func (_this GetClientInput) ParentTraits_() []*_dafny.TraitID {
  6469  	return [](*_dafny.TraitID){}
  6470  }
  6471  
  6472  var _ _dafny.TraitOffspring = GetClientInput{}
  6473  
  6474  // End of datatype GetClientInput
  6475  
  6476  // Definition of datatype GetEncryptionMaterialsInput
  6477  type GetEncryptionMaterialsInput struct {
  6478  	Data_GetEncryptionMaterialsInput_
  6479  }
  6480  
  6481  func (_this GetEncryptionMaterialsInput) Get_() Data_GetEncryptionMaterialsInput_ {
  6482  	return _this.Data_GetEncryptionMaterialsInput_
  6483  }
  6484  
  6485  type Data_GetEncryptionMaterialsInput_ interface {
  6486  	isGetEncryptionMaterialsInput()
  6487  }
  6488  
  6489  type CompanionStruct_GetEncryptionMaterialsInput_ struct {
  6490  }
  6491  
  6492  var Companion_GetEncryptionMaterialsInput_ = CompanionStruct_GetEncryptionMaterialsInput_{}
  6493  
  6494  type GetEncryptionMaterialsInput_GetEncryptionMaterialsInput struct {
  6495  	EncryptionContext             _dafny.Map
  6496  	CommitmentPolicy              CommitmentPolicy
  6497  	AlgorithmSuiteId              m_Wrappers.Option
  6498  	MaxPlaintextLength            m_Wrappers.Option
  6499  	RequiredEncryptionContextKeys m_Wrappers.Option
  6500  }
  6501  
  6502  func (GetEncryptionMaterialsInput_GetEncryptionMaterialsInput) isGetEncryptionMaterialsInput() {}
  6503  
  6504  func (CompanionStruct_GetEncryptionMaterialsInput_) Create_GetEncryptionMaterialsInput_(EncryptionContext _dafny.Map, CommitmentPolicy CommitmentPolicy, AlgorithmSuiteId m_Wrappers.Option, MaxPlaintextLength m_Wrappers.Option, RequiredEncryptionContextKeys m_Wrappers.Option) GetEncryptionMaterialsInput {
  6505  	return GetEncryptionMaterialsInput{GetEncryptionMaterialsInput_GetEncryptionMaterialsInput{EncryptionContext, CommitmentPolicy, AlgorithmSuiteId, MaxPlaintextLength, RequiredEncryptionContextKeys}}
  6506  }
  6507  
  6508  func (_this GetEncryptionMaterialsInput) Is_GetEncryptionMaterialsInput() bool {
  6509  	_, ok := _this.Get_().(GetEncryptionMaterialsInput_GetEncryptionMaterialsInput)
  6510  	return ok
  6511  }
  6512  
  6513  func (CompanionStruct_GetEncryptionMaterialsInput_) Default() GetEncryptionMaterialsInput {
  6514  	return Companion_GetEncryptionMaterialsInput_.Create_GetEncryptionMaterialsInput_(_dafny.EmptyMap, Companion_CommitmentPolicy_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default())
  6515  }
  6516  
  6517  func (_this GetEncryptionMaterialsInput) Dtor_encryptionContext() _dafny.Map {
  6518  	return _this.Get_().(GetEncryptionMaterialsInput_GetEncryptionMaterialsInput).EncryptionContext
  6519  }
  6520  
  6521  func (_this GetEncryptionMaterialsInput) Dtor_commitmentPolicy() CommitmentPolicy {
  6522  	return _this.Get_().(GetEncryptionMaterialsInput_GetEncryptionMaterialsInput).CommitmentPolicy
  6523  }
  6524  
  6525  func (_this GetEncryptionMaterialsInput) Dtor_algorithmSuiteId() m_Wrappers.Option {
  6526  	return _this.Get_().(GetEncryptionMaterialsInput_GetEncryptionMaterialsInput).AlgorithmSuiteId
  6527  }
  6528  
  6529  func (_this GetEncryptionMaterialsInput) Dtor_maxPlaintextLength() m_Wrappers.Option {
  6530  	return _this.Get_().(GetEncryptionMaterialsInput_GetEncryptionMaterialsInput).MaxPlaintextLength
  6531  }
  6532  
  6533  func (_this GetEncryptionMaterialsInput) Dtor_requiredEncryptionContextKeys() m_Wrappers.Option {
  6534  	return _this.Get_().(GetEncryptionMaterialsInput_GetEncryptionMaterialsInput).RequiredEncryptionContextKeys
  6535  }
  6536  
  6537  func (_this GetEncryptionMaterialsInput) String() string {
  6538  	switch data := _this.Get_().(type) {
  6539  	case nil:
  6540  		return "null"
  6541  	case GetEncryptionMaterialsInput_GetEncryptionMaterialsInput:
  6542  		{
  6543  			return "AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput.GetEncryptionMaterialsInput" + "(" + _dafny.String(data.EncryptionContext) + ", " + _dafny.String(data.CommitmentPolicy) + ", " + _dafny.String(data.AlgorithmSuiteId) + ", " + _dafny.String(data.MaxPlaintextLength) + ", " + _dafny.String(data.RequiredEncryptionContextKeys) + ")"
  6544  		}
  6545  	default:
  6546  		{
  6547  			return "<unexpected>"
  6548  		}
  6549  	}
  6550  }
  6551  
  6552  func (_this GetEncryptionMaterialsInput) Equals(other GetEncryptionMaterialsInput) bool {
  6553  	switch data1 := _this.Get_().(type) {
  6554  	case GetEncryptionMaterialsInput_GetEncryptionMaterialsInput:
  6555  		{
  6556  			data2, ok := other.Get_().(GetEncryptionMaterialsInput_GetEncryptionMaterialsInput)
  6557  			return ok && data1.EncryptionContext.Equals(data2.EncryptionContext) && data1.CommitmentPolicy.Equals(data2.CommitmentPolicy) && data1.AlgorithmSuiteId.Equals(data2.AlgorithmSuiteId) && data1.MaxPlaintextLength.Equals(data2.MaxPlaintextLength) && data1.RequiredEncryptionContextKeys.Equals(data2.RequiredEncryptionContextKeys)
  6558  		}
  6559  	default:
  6560  		{
  6561  			return false // unexpected
  6562  		}
  6563  	}
  6564  }
  6565  
  6566  func (_this GetEncryptionMaterialsInput) EqualsGeneric(other interface{}) bool {
  6567  	typed, ok := other.(GetEncryptionMaterialsInput)
  6568  	return ok && _this.Equals(typed)
  6569  }
  6570  
  6571  func Type_GetEncryptionMaterialsInput_() _dafny.TypeDescriptor {
  6572  	return type_GetEncryptionMaterialsInput_{}
  6573  }
  6574  
  6575  type type_GetEncryptionMaterialsInput_ struct {
  6576  }
  6577  
  6578  func (_this type_GetEncryptionMaterialsInput_) Default() interface{} {
  6579  	return Companion_GetEncryptionMaterialsInput_.Default()
  6580  }
  6581  
  6582  func (_this type_GetEncryptionMaterialsInput_) String() string {
  6583  	return "AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsInput"
  6584  }
  6585  func (_this GetEncryptionMaterialsInput) ParentTraits_() []*_dafny.TraitID {
  6586  	return [](*_dafny.TraitID){}
  6587  }
  6588  
  6589  var _ _dafny.TraitOffspring = GetEncryptionMaterialsInput{}
  6590  
  6591  // End of datatype GetEncryptionMaterialsInput
  6592  
  6593  // Definition of datatype GetEncryptionMaterialsOutput
  6594  type GetEncryptionMaterialsOutput struct {
  6595  	Data_GetEncryptionMaterialsOutput_
  6596  }
  6597  
  6598  func (_this GetEncryptionMaterialsOutput) Get_() Data_GetEncryptionMaterialsOutput_ {
  6599  	return _this.Data_GetEncryptionMaterialsOutput_
  6600  }
  6601  
  6602  type Data_GetEncryptionMaterialsOutput_ interface {
  6603  	isGetEncryptionMaterialsOutput()
  6604  }
  6605  
  6606  type CompanionStruct_GetEncryptionMaterialsOutput_ struct {
  6607  }
  6608  
  6609  var Companion_GetEncryptionMaterialsOutput_ = CompanionStruct_GetEncryptionMaterialsOutput_{}
  6610  
  6611  type GetEncryptionMaterialsOutput_GetEncryptionMaterialsOutput struct {
  6612  	EncryptionMaterials EncryptionMaterials
  6613  }
  6614  
  6615  func (GetEncryptionMaterialsOutput_GetEncryptionMaterialsOutput) isGetEncryptionMaterialsOutput() {}
  6616  
  6617  func (CompanionStruct_GetEncryptionMaterialsOutput_) Create_GetEncryptionMaterialsOutput_(EncryptionMaterials EncryptionMaterials) GetEncryptionMaterialsOutput {
  6618  	return GetEncryptionMaterialsOutput{GetEncryptionMaterialsOutput_GetEncryptionMaterialsOutput{EncryptionMaterials}}
  6619  }
  6620  
  6621  func (_this GetEncryptionMaterialsOutput) Is_GetEncryptionMaterialsOutput() bool {
  6622  	_, ok := _this.Get_().(GetEncryptionMaterialsOutput_GetEncryptionMaterialsOutput)
  6623  	return ok
  6624  }
  6625  
  6626  func (CompanionStruct_GetEncryptionMaterialsOutput_) Default() GetEncryptionMaterialsOutput {
  6627  	return Companion_GetEncryptionMaterialsOutput_.Create_GetEncryptionMaterialsOutput_(Companion_EncryptionMaterials_.Default())
  6628  }
  6629  
  6630  func (_this GetEncryptionMaterialsOutput) Dtor_encryptionMaterials() EncryptionMaterials {
  6631  	return _this.Get_().(GetEncryptionMaterialsOutput_GetEncryptionMaterialsOutput).EncryptionMaterials
  6632  }
  6633  
  6634  func (_this GetEncryptionMaterialsOutput) String() string {
  6635  	switch data := _this.Get_().(type) {
  6636  	case nil:
  6637  		return "null"
  6638  	case GetEncryptionMaterialsOutput_GetEncryptionMaterialsOutput:
  6639  		{
  6640  			return "AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsOutput.GetEncryptionMaterialsOutput" + "(" + _dafny.String(data.EncryptionMaterials) + ")"
  6641  		}
  6642  	default:
  6643  		{
  6644  			return "<unexpected>"
  6645  		}
  6646  	}
  6647  }
  6648  
  6649  func (_this GetEncryptionMaterialsOutput) Equals(other GetEncryptionMaterialsOutput) bool {
  6650  	switch data1 := _this.Get_().(type) {
  6651  	case GetEncryptionMaterialsOutput_GetEncryptionMaterialsOutput:
  6652  		{
  6653  			data2, ok := other.Get_().(GetEncryptionMaterialsOutput_GetEncryptionMaterialsOutput)
  6654  			return ok && data1.EncryptionMaterials.Equals(data2.EncryptionMaterials)
  6655  		}
  6656  	default:
  6657  		{
  6658  			return false // unexpected
  6659  		}
  6660  	}
  6661  }
  6662  
  6663  func (_this GetEncryptionMaterialsOutput) EqualsGeneric(other interface{}) bool {
  6664  	typed, ok := other.(GetEncryptionMaterialsOutput)
  6665  	return ok && _this.Equals(typed)
  6666  }
  6667  
  6668  func Type_GetEncryptionMaterialsOutput_() _dafny.TypeDescriptor {
  6669  	return type_GetEncryptionMaterialsOutput_{}
  6670  }
  6671  
  6672  type type_GetEncryptionMaterialsOutput_ struct {
  6673  }
  6674  
  6675  func (_this type_GetEncryptionMaterialsOutput_) Default() interface{} {
  6676  	return Companion_GetEncryptionMaterialsOutput_.Default()
  6677  }
  6678  
  6679  func (_this type_GetEncryptionMaterialsOutput_) String() string {
  6680  	return "AwsCryptographyMaterialProvidersTypes.GetEncryptionMaterialsOutput"
  6681  }
  6682  func (_this GetEncryptionMaterialsOutput) ParentTraits_() []*_dafny.TraitID {
  6683  	return [](*_dafny.TraitID){}
  6684  }
  6685  
  6686  var _ _dafny.TraitOffspring = GetEncryptionMaterialsOutput{}
  6687  
  6688  // End of datatype GetEncryptionMaterialsOutput
  6689  
  6690  // Definition of datatype HKDF
  6691  type HKDF struct {
  6692  	Data_HKDF_
  6693  }
  6694  
  6695  func (_this HKDF) Get_() Data_HKDF_ {
  6696  	return _this.Data_HKDF_
  6697  }
  6698  
  6699  type Data_HKDF_ interface {
  6700  	isHKDF()
  6701  }
  6702  
  6703  type CompanionStruct_HKDF_ struct {
  6704  }
  6705  
  6706  var Companion_HKDF_ = CompanionStruct_HKDF_{}
  6707  
  6708  type HKDF_HKDF struct {
  6709  	Hmac            m_AwsCryptographyPrimitivesTypes.DigestAlgorithm
  6710  	SaltLength      int32
  6711  	InputKeyLength  int32
  6712  	OutputKeyLength int32
  6713  }
  6714  
  6715  func (HKDF_HKDF) isHKDF() {}
  6716  
  6717  func (CompanionStruct_HKDF_) Create_HKDF_(Hmac m_AwsCryptographyPrimitivesTypes.DigestAlgorithm, SaltLength int32, InputKeyLength int32, OutputKeyLength int32) HKDF {
  6718  	return HKDF{HKDF_HKDF{Hmac, SaltLength, InputKeyLength, OutputKeyLength}}
  6719  }
  6720  
  6721  func (_this HKDF) Is_HKDF() bool {
  6722  	_, ok := _this.Get_().(HKDF_HKDF)
  6723  	return ok
  6724  }
  6725  
  6726  func (CompanionStruct_HKDF_) Default() HKDF {
  6727  	return Companion_HKDF_.Create_HKDF_(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Default(), int32(0), int32(0), int32(0))
  6728  }
  6729  
  6730  func (_this HKDF) Dtor_hmac() m_AwsCryptographyPrimitivesTypes.DigestAlgorithm {
  6731  	return _this.Get_().(HKDF_HKDF).Hmac
  6732  }
  6733  
  6734  func (_this HKDF) Dtor_saltLength() int32 {
  6735  	return _this.Get_().(HKDF_HKDF).SaltLength
  6736  }
  6737  
  6738  func (_this HKDF) Dtor_inputKeyLength() int32 {
  6739  	return _this.Get_().(HKDF_HKDF).InputKeyLength
  6740  }
  6741  
  6742  func (_this HKDF) Dtor_outputKeyLength() int32 {
  6743  	return _this.Get_().(HKDF_HKDF).OutputKeyLength
  6744  }
  6745  
  6746  func (_this HKDF) String() string {
  6747  	switch data := _this.Get_().(type) {
  6748  	case nil:
  6749  		return "null"
  6750  	case HKDF_HKDF:
  6751  		{
  6752  			return "AwsCryptographyMaterialProvidersTypes.HKDF.HKDF" + "(" + _dafny.String(data.Hmac) + ", " + _dafny.String(data.SaltLength) + ", " + _dafny.String(data.InputKeyLength) + ", " + _dafny.String(data.OutputKeyLength) + ")"
  6753  		}
  6754  	default:
  6755  		{
  6756  			return "<unexpected>"
  6757  		}
  6758  	}
  6759  }
  6760  
  6761  func (_this HKDF) Equals(other HKDF) bool {
  6762  	switch data1 := _this.Get_().(type) {
  6763  	case HKDF_HKDF:
  6764  		{
  6765  			data2, ok := other.Get_().(HKDF_HKDF)
  6766  			return ok && data1.Hmac.Equals(data2.Hmac) && data1.SaltLength == data2.SaltLength && data1.InputKeyLength == data2.InputKeyLength && data1.OutputKeyLength == data2.OutputKeyLength
  6767  		}
  6768  	default:
  6769  		{
  6770  			return false // unexpected
  6771  		}
  6772  	}
  6773  }
  6774  
  6775  func (_this HKDF) EqualsGeneric(other interface{}) bool {
  6776  	typed, ok := other.(HKDF)
  6777  	return ok && _this.Equals(typed)
  6778  }
  6779  
  6780  func Type_HKDF_() _dafny.TypeDescriptor {
  6781  	return type_HKDF_{}
  6782  }
  6783  
  6784  type type_HKDF_ struct {
  6785  }
  6786  
  6787  func (_this type_HKDF_) Default() interface{} {
  6788  	return Companion_HKDF_.Default()
  6789  }
  6790  
  6791  func (_this type_HKDF_) String() string {
  6792  	return "AwsCryptographyMaterialProvidersTypes.HKDF"
  6793  }
  6794  func (_this HKDF) ParentTraits_() []*_dafny.TraitID {
  6795  	return [](*_dafny.TraitID){}
  6796  }
  6797  
  6798  var _ _dafny.TraitOffspring = HKDF{}
  6799  
  6800  // End of datatype HKDF
  6801  
  6802  // Definition of datatype IDENTITY
  6803  type IDENTITY struct {
  6804  	Data_IDENTITY_
  6805  }
  6806  
  6807  func (_this IDENTITY) Get_() Data_IDENTITY_ {
  6808  	return _this.Data_IDENTITY_
  6809  }
  6810  
  6811  type Data_IDENTITY_ interface {
  6812  	isIDENTITY()
  6813  }
  6814  
  6815  type CompanionStruct_IDENTITY_ struct {
  6816  }
  6817  
  6818  var Companion_IDENTITY_ = CompanionStruct_IDENTITY_{}
  6819  
  6820  type IDENTITY_IDENTITY struct {
  6821  }
  6822  
  6823  func (IDENTITY_IDENTITY) isIDENTITY() {}
  6824  
  6825  func (CompanionStruct_IDENTITY_) Create_IDENTITY_() IDENTITY {
  6826  	return IDENTITY{IDENTITY_IDENTITY{}}
  6827  }
  6828  
  6829  func (_this IDENTITY) Is_IDENTITY() bool {
  6830  	_, ok := _this.Get_().(IDENTITY_IDENTITY)
  6831  	return ok
  6832  }
  6833  
  6834  func (CompanionStruct_IDENTITY_) Default() IDENTITY {
  6835  	return Companion_IDENTITY_.Create_IDENTITY_()
  6836  }
  6837  
  6838  func (_ CompanionStruct_IDENTITY_) AllSingletonConstructors() _dafny.Iterator {
  6839  	i := -1
  6840  	return func() (interface{}, bool) {
  6841  		i++
  6842  		switch i {
  6843  		case 0:
  6844  			return Companion_IDENTITY_.Create_IDENTITY_(), true
  6845  		default:
  6846  			return IDENTITY{}, false
  6847  		}
  6848  	}
  6849  }
  6850  
  6851  func (_this IDENTITY) String() string {
  6852  	switch _this.Get_().(type) {
  6853  	case nil:
  6854  		return "null"
  6855  	case IDENTITY_IDENTITY:
  6856  		{
  6857  			return "AwsCryptographyMaterialProvidersTypes.IDENTITY.IDENTITY"
  6858  		}
  6859  	default:
  6860  		{
  6861  			return "<unexpected>"
  6862  		}
  6863  	}
  6864  }
  6865  
  6866  func (_this IDENTITY) Equals(other IDENTITY) bool {
  6867  	switch _this.Get_().(type) {
  6868  	case IDENTITY_IDENTITY:
  6869  		{
  6870  			_, ok := other.Get_().(IDENTITY_IDENTITY)
  6871  			return ok
  6872  		}
  6873  	default:
  6874  		{
  6875  			return false // unexpected
  6876  		}
  6877  	}
  6878  }
  6879  
  6880  func (_this IDENTITY) EqualsGeneric(other interface{}) bool {
  6881  	typed, ok := other.(IDENTITY)
  6882  	return ok && _this.Equals(typed)
  6883  }
  6884  
  6885  func Type_IDENTITY_() _dafny.TypeDescriptor {
  6886  	return type_IDENTITY_{}
  6887  }
  6888  
  6889  type type_IDENTITY_ struct {
  6890  }
  6891  
  6892  func (_this type_IDENTITY_) Default() interface{} {
  6893  	return Companion_IDENTITY_.Default()
  6894  }
  6895  
  6896  func (_this type_IDENTITY_) String() string {
  6897  	return "AwsCryptographyMaterialProvidersTypes.IDENTITY"
  6898  }
  6899  func (_this IDENTITY) ParentTraits_() []*_dafny.TraitID {
  6900  	return [](*_dafny.TraitID){}
  6901  }
  6902  
  6903  var _ _dafny.TraitOffspring = IDENTITY{}
  6904  
  6905  // End of datatype IDENTITY
  6906  
  6907  // Definition of datatype InitializeDecryptionMaterialsInput
  6908  type InitializeDecryptionMaterialsInput struct {
  6909  	Data_InitializeDecryptionMaterialsInput_
  6910  }
  6911  
  6912  func (_this InitializeDecryptionMaterialsInput) Get_() Data_InitializeDecryptionMaterialsInput_ {
  6913  	return _this.Data_InitializeDecryptionMaterialsInput_
  6914  }
  6915  
  6916  type Data_InitializeDecryptionMaterialsInput_ interface {
  6917  	isInitializeDecryptionMaterialsInput()
  6918  }
  6919  
  6920  type CompanionStruct_InitializeDecryptionMaterialsInput_ struct {
  6921  }
  6922  
  6923  var Companion_InitializeDecryptionMaterialsInput_ = CompanionStruct_InitializeDecryptionMaterialsInput_{}
  6924  
  6925  type InitializeDecryptionMaterialsInput_InitializeDecryptionMaterialsInput struct {
  6926  	AlgorithmSuiteId              AlgorithmSuiteId
  6927  	EncryptionContext             _dafny.Map
  6928  	RequiredEncryptionContextKeys _dafny.Sequence
  6929  }
  6930  
  6931  func (InitializeDecryptionMaterialsInput_InitializeDecryptionMaterialsInput) isInitializeDecryptionMaterialsInput() {
  6932  }
  6933  
  6934  func (CompanionStruct_InitializeDecryptionMaterialsInput_) Create_InitializeDecryptionMaterialsInput_(AlgorithmSuiteId AlgorithmSuiteId, EncryptionContext _dafny.Map, RequiredEncryptionContextKeys _dafny.Sequence) InitializeDecryptionMaterialsInput {
  6935  	return InitializeDecryptionMaterialsInput{InitializeDecryptionMaterialsInput_InitializeDecryptionMaterialsInput{AlgorithmSuiteId, EncryptionContext, RequiredEncryptionContextKeys}}
  6936  }
  6937  
  6938  func (_this InitializeDecryptionMaterialsInput) Is_InitializeDecryptionMaterialsInput() bool {
  6939  	_, ok := _this.Get_().(InitializeDecryptionMaterialsInput_InitializeDecryptionMaterialsInput)
  6940  	return ok
  6941  }
  6942  
  6943  func (CompanionStruct_InitializeDecryptionMaterialsInput_) Default() InitializeDecryptionMaterialsInput {
  6944  	return Companion_InitializeDecryptionMaterialsInput_.Create_InitializeDecryptionMaterialsInput_(Companion_AlgorithmSuiteId_.Default(), _dafny.EmptyMap, _dafny.EmptySeq)
  6945  }
  6946  
  6947  func (_this InitializeDecryptionMaterialsInput) Dtor_algorithmSuiteId() AlgorithmSuiteId {
  6948  	return _this.Get_().(InitializeDecryptionMaterialsInput_InitializeDecryptionMaterialsInput).AlgorithmSuiteId
  6949  }
  6950  
  6951  func (_this InitializeDecryptionMaterialsInput) Dtor_encryptionContext() _dafny.Map {
  6952  	return _this.Get_().(InitializeDecryptionMaterialsInput_InitializeDecryptionMaterialsInput).EncryptionContext
  6953  }
  6954  
  6955  func (_this InitializeDecryptionMaterialsInput) Dtor_requiredEncryptionContextKeys() _dafny.Sequence {
  6956  	return _this.Get_().(InitializeDecryptionMaterialsInput_InitializeDecryptionMaterialsInput).RequiredEncryptionContextKeys
  6957  }
  6958  
  6959  func (_this InitializeDecryptionMaterialsInput) String() string {
  6960  	switch data := _this.Get_().(type) {
  6961  	case nil:
  6962  		return "null"
  6963  	case InitializeDecryptionMaterialsInput_InitializeDecryptionMaterialsInput:
  6964  		{
  6965  			return "AwsCryptographyMaterialProvidersTypes.InitializeDecryptionMaterialsInput.InitializeDecryptionMaterialsInput" + "(" + _dafny.String(data.AlgorithmSuiteId) + ", " + _dafny.String(data.EncryptionContext) + ", " + _dafny.String(data.RequiredEncryptionContextKeys) + ")"
  6966  		}
  6967  	default:
  6968  		{
  6969  			return "<unexpected>"
  6970  		}
  6971  	}
  6972  }
  6973  
  6974  func (_this InitializeDecryptionMaterialsInput) Equals(other InitializeDecryptionMaterialsInput) bool {
  6975  	switch data1 := _this.Get_().(type) {
  6976  	case InitializeDecryptionMaterialsInput_InitializeDecryptionMaterialsInput:
  6977  		{
  6978  			data2, ok := other.Get_().(InitializeDecryptionMaterialsInput_InitializeDecryptionMaterialsInput)
  6979  			return ok && data1.AlgorithmSuiteId.Equals(data2.AlgorithmSuiteId) && data1.EncryptionContext.Equals(data2.EncryptionContext) && data1.RequiredEncryptionContextKeys.Equals(data2.RequiredEncryptionContextKeys)
  6980  		}
  6981  	default:
  6982  		{
  6983  			return false // unexpected
  6984  		}
  6985  	}
  6986  }
  6987  
  6988  func (_this InitializeDecryptionMaterialsInput) EqualsGeneric(other interface{}) bool {
  6989  	typed, ok := other.(InitializeDecryptionMaterialsInput)
  6990  	return ok && _this.Equals(typed)
  6991  }
  6992  
  6993  func Type_InitializeDecryptionMaterialsInput_() _dafny.TypeDescriptor {
  6994  	return type_InitializeDecryptionMaterialsInput_{}
  6995  }
  6996  
  6997  type type_InitializeDecryptionMaterialsInput_ struct {
  6998  }
  6999  
  7000  func (_this type_InitializeDecryptionMaterialsInput_) Default() interface{} {
  7001  	return Companion_InitializeDecryptionMaterialsInput_.Default()
  7002  }
  7003  
  7004  func (_this type_InitializeDecryptionMaterialsInput_) String() string {
  7005  	return "AwsCryptographyMaterialProvidersTypes.InitializeDecryptionMaterialsInput"
  7006  }
  7007  func (_this InitializeDecryptionMaterialsInput) ParentTraits_() []*_dafny.TraitID {
  7008  	return [](*_dafny.TraitID){}
  7009  }
  7010  
  7011  var _ _dafny.TraitOffspring = InitializeDecryptionMaterialsInput{}
  7012  
  7013  // End of datatype InitializeDecryptionMaterialsInput
  7014  
  7015  // Definition of datatype InitializeEncryptionMaterialsInput
  7016  type InitializeEncryptionMaterialsInput struct {
  7017  	Data_InitializeEncryptionMaterialsInput_
  7018  }
  7019  
  7020  func (_this InitializeEncryptionMaterialsInput) Get_() Data_InitializeEncryptionMaterialsInput_ {
  7021  	return _this.Data_InitializeEncryptionMaterialsInput_
  7022  }
  7023  
  7024  type Data_InitializeEncryptionMaterialsInput_ interface {
  7025  	isInitializeEncryptionMaterialsInput()
  7026  }
  7027  
  7028  type CompanionStruct_InitializeEncryptionMaterialsInput_ struct {
  7029  }
  7030  
  7031  var Companion_InitializeEncryptionMaterialsInput_ = CompanionStruct_InitializeEncryptionMaterialsInput_{}
  7032  
  7033  type InitializeEncryptionMaterialsInput_InitializeEncryptionMaterialsInput struct {
  7034  	AlgorithmSuiteId              AlgorithmSuiteId
  7035  	EncryptionContext             _dafny.Map
  7036  	RequiredEncryptionContextKeys _dafny.Sequence
  7037  	SigningKey                    m_Wrappers.Option
  7038  	VerificationKey               m_Wrappers.Option
  7039  }
  7040  
  7041  func (InitializeEncryptionMaterialsInput_InitializeEncryptionMaterialsInput) isInitializeEncryptionMaterialsInput() {
  7042  }
  7043  
  7044  func (CompanionStruct_InitializeEncryptionMaterialsInput_) Create_InitializeEncryptionMaterialsInput_(AlgorithmSuiteId AlgorithmSuiteId, EncryptionContext _dafny.Map, RequiredEncryptionContextKeys _dafny.Sequence, SigningKey m_Wrappers.Option, VerificationKey m_Wrappers.Option) InitializeEncryptionMaterialsInput {
  7045  	return InitializeEncryptionMaterialsInput{InitializeEncryptionMaterialsInput_InitializeEncryptionMaterialsInput{AlgorithmSuiteId, EncryptionContext, RequiredEncryptionContextKeys, SigningKey, VerificationKey}}
  7046  }
  7047  
  7048  func (_this InitializeEncryptionMaterialsInput) Is_InitializeEncryptionMaterialsInput() bool {
  7049  	_, ok := _this.Get_().(InitializeEncryptionMaterialsInput_InitializeEncryptionMaterialsInput)
  7050  	return ok
  7051  }
  7052  
  7053  func (CompanionStruct_InitializeEncryptionMaterialsInput_) Default() InitializeEncryptionMaterialsInput {
  7054  	return Companion_InitializeEncryptionMaterialsInput_.Create_InitializeEncryptionMaterialsInput_(Companion_AlgorithmSuiteId_.Default(), _dafny.EmptyMap, _dafny.EmptySeq, m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default())
  7055  }
  7056  
  7057  func (_this InitializeEncryptionMaterialsInput) Dtor_algorithmSuiteId() AlgorithmSuiteId {
  7058  	return _this.Get_().(InitializeEncryptionMaterialsInput_InitializeEncryptionMaterialsInput).AlgorithmSuiteId
  7059  }
  7060  
  7061  func (_this InitializeEncryptionMaterialsInput) Dtor_encryptionContext() _dafny.Map {
  7062  	return _this.Get_().(InitializeEncryptionMaterialsInput_InitializeEncryptionMaterialsInput).EncryptionContext
  7063  }
  7064  
  7065  func (_this InitializeEncryptionMaterialsInput) Dtor_requiredEncryptionContextKeys() _dafny.Sequence {
  7066  	return _this.Get_().(InitializeEncryptionMaterialsInput_InitializeEncryptionMaterialsInput).RequiredEncryptionContextKeys
  7067  }
  7068  
  7069  func (_this InitializeEncryptionMaterialsInput) Dtor_signingKey() m_Wrappers.Option {
  7070  	return _this.Get_().(InitializeEncryptionMaterialsInput_InitializeEncryptionMaterialsInput).SigningKey
  7071  }
  7072  
  7073  func (_this InitializeEncryptionMaterialsInput) Dtor_verificationKey() m_Wrappers.Option {
  7074  	return _this.Get_().(InitializeEncryptionMaterialsInput_InitializeEncryptionMaterialsInput).VerificationKey
  7075  }
  7076  
  7077  func (_this InitializeEncryptionMaterialsInput) String() string {
  7078  	switch data := _this.Get_().(type) {
  7079  	case nil:
  7080  		return "null"
  7081  	case InitializeEncryptionMaterialsInput_InitializeEncryptionMaterialsInput:
  7082  		{
  7083  			return "AwsCryptographyMaterialProvidersTypes.InitializeEncryptionMaterialsInput.InitializeEncryptionMaterialsInput" + "(" + _dafny.String(data.AlgorithmSuiteId) + ", " + _dafny.String(data.EncryptionContext) + ", " + _dafny.String(data.RequiredEncryptionContextKeys) + ", " + _dafny.String(data.SigningKey) + ", " + _dafny.String(data.VerificationKey) + ")"
  7084  		}
  7085  	default:
  7086  		{
  7087  			return "<unexpected>"
  7088  		}
  7089  	}
  7090  }
  7091  
  7092  func (_this InitializeEncryptionMaterialsInput) Equals(other InitializeEncryptionMaterialsInput) bool {
  7093  	switch data1 := _this.Get_().(type) {
  7094  	case InitializeEncryptionMaterialsInput_InitializeEncryptionMaterialsInput:
  7095  		{
  7096  			data2, ok := other.Get_().(InitializeEncryptionMaterialsInput_InitializeEncryptionMaterialsInput)
  7097  			return ok && data1.AlgorithmSuiteId.Equals(data2.AlgorithmSuiteId) && data1.EncryptionContext.Equals(data2.EncryptionContext) && data1.RequiredEncryptionContextKeys.Equals(data2.RequiredEncryptionContextKeys) && data1.SigningKey.Equals(data2.SigningKey) && data1.VerificationKey.Equals(data2.VerificationKey)
  7098  		}
  7099  	default:
  7100  		{
  7101  			return false // unexpected
  7102  		}
  7103  	}
  7104  }
  7105  
  7106  func (_this InitializeEncryptionMaterialsInput) EqualsGeneric(other interface{}) bool {
  7107  	typed, ok := other.(InitializeEncryptionMaterialsInput)
  7108  	return ok && _this.Equals(typed)
  7109  }
  7110  
  7111  func Type_InitializeEncryptionMaterialsInput_() _dafny.TypeDescriptor {
  7112  	return type_InitializeEncryptionMaterialsInput_{}
  7113  }
  7114  
  7115  type type_InitializeEncryptionMaterialsInput_ struct {
  7116  }
  7117  
  7118  func (_this type_InitializeEncryptionMaterialsInput_) Default() interface{} {
  7119  	return Companion_InitializeEncryptionMaterialsInput_.Default()
  7120  }
  7121  
  7122  func (_this type_InitializeEncryptionMaterialsInput_) String() string {
  7123  	return "AwsCryptographyMaterialProvidersTypes.InitializeEncryptionMaterialsInput"
  7124  }
  7125  func (_this InitializeEncryptionMaterialsInput) ParentTraits_() []*_dafny.TraitID {
  7126  	return [](*_dafny.TraitID){}
  7127  }
  7128  
  7129  var _ _dafny.TraitOffspring = InitializeEncryptionMaterialsInput{}
  7130  
  7131  // End of datatype InitializeEncryptionMaterialsInput
  7132  
  7133  // Definition of datatype IntermediateKeyWrapping
  7134  type IntermediateKeyWrapping struct {
  7135  	Data_IntermediateKeyWrapping_
  7136  }
  7137  
  7138  func (_this IntermediateKeyWrapping) Get_() Data_IntermediateKeyWrapping_ {
  7139  	return _this.Data_IntermediateKeyWrapping_
  7140  }
  7141  
  7142  type Data_IntermediateKeyWrapping_ interface {
  7143  	isIntermediateKeyWrapping()
  7144  }
  7145  
  7146  type CompanionStruct_IntermediateKeyWrapping_ struct {
  7147  }
  7148  
  7149  var Companion_IntermediateKeyWrapping_ = CompanionStruct_IntermediateKeyWrapping_{}
  7150  
  7151  type IntermediateKeyWrapping_IntermediateKeyWrapping struct {
  7152  	KeyEncryptionKeyKdf DerivationAlgorithm
  7153  	MacKeyKdf           DerivationAlgorithm
  7154  	PdkEncryptAlgorithm Encrypt
  7155  }
  7156  
  7157  func (IntermediateKeyWrapping_IntermediateKeyWrapping) isIntermediateKeyWrapping() {}
  7158  
  7159  func (CompanionStruct_IntermediateKeyWrapping_) Create_IntermediateKeyWrapping_(KeyEncryptionKeyKdf DerivationAlgorithm, MacKeyKdf DerivationAlgorithm, PdkEncryptAlgorithm Encrypt) IntermediateKeyWrapping {
  7160  	return IntermediateKeyWrapping{IntermediateKeyWrapping_IntermediateKeyWrapping{KeyEncryptionKeyKdf, MacKeyKdf, PdkEncryptAlgorithm}}
  7161  }
  7162  
  7163  func (_this IntermediateKeyWrapping) Is_IntermediateKeyWrapping() bool {
  7164  	_, ok := _this.Get_().(IntermediateKeyWrapping_IntermediateKeyWrapping)
  7165  	return ok
  7166  }
  7167  
  7168  func (CompanionStruct_IntermediateKeyWrapping_) Default() IntermediateKeyWrapping {
  7169  	return Companion_IntermediateKeyWrapping_.Create_IntermediateKeyWrapping_(Companion_DerivationAlgorithm_.Default(), Companion_DerivationAlgorithm_.Default(), Companion_Encrypt_.Default())
  7170  }
  7171  
  7172  func (_this IntermediateKeyWrapping) Dtor_keyEncryptionKeyKdf() DerivationAlgorithm {
  7173  	return _this.Get_().(IntermediateKeyWrapping_IntermediateKeyWrapping).KeyEncryptionKeyKdf
  7174  }
  7175  
  7176  func (_this IntermediateKeyWrapping) Dtor_macKeyKdf() DerivationAlgorithm {
  7177  	return _this.Get_().(IntermediateKeyWrapping_IntermediateKeyWrapping).MacKeyKdf
  7178  }
  7179  
  7180  func (_this IntermediateKeyWrapping) Dtor_pdkEncryptAlgorithm() Encrypt {
  7181  	return _this.Get_().(IntermediateKeyWrapping_IntermediateKeyWrapping).PdkEncryptAlgorithm
  7182  }
  7183  
  7184  func (_this IntermediateKeyWrapping) String() string {
  7185  	switch data := _this.Get_().(type) {
  7186  	case nil:
  7187  		return "null"
  7188  	case IntermediateKeyWrapping_IntermediateKeyWrapping:
  7189  		{
  7190  			return "AwsCryptographyMaterialProvidersTypes.IntermediateKeyWrapping.IntermediateKeyWrapping" + "(" + _dafny.String(data.KeyEncryptionKeyKdf) + ", " + _dafny.String(data.MacKeyKdf) + ", " + _dafny.String(data.PdkEncryptAlgorithm) + ")"
  7191  		}
  7192  	default:
  7193  		{
  7194  			return "<unexpected>"
  7195  		}
  7196  	}
  7197  }
  7198  
  7199  func (_this IntermediateKeyWrapping) Equals(other IntermediateKeyWrapping) bool {
  7200  	switch data1 := _this.Get_().(type) {
  7201  	case IntermediateKeyWrapping_IntermediateKeyWrapping:
  7202  		{
  7203  			data2, ok := other.Get_().(IntermediateKeyWrapping_IntermediateKeyWrapping)
  7204  			return ok && data1.KeyEncryptionKeyKdf.Equals(data2.KeyEncryptionKeyKdf) && data1.MacKeyKdf.Equals(data2.MacKeyKdf) && data1.PdkEncryptAlgorithm.Equals(data2.PdkEncryptAlgorithm)
  7205  		}
  7206  	default:
  7207  		{
  7208  			return false // unexpected
  7209  		}
  7210  	}
  7211  }
  7212  
  7213  func (_this IntermediateKeyWrapping) EqualsGeneric(other interface{}) bool {
  7214  	typed, ok := other.(IntermediateKeyWrapping)
  7215  	return ok && _this.Equals(typed)
  7216  }
  7217  
  7218  func Type_IntermediateKeyWrapping_() _dafny.TypeDescriptor {
  7219  	return type_IntermediateKeyWrapping_{}
  7220  }
  7221  
  7222  type type_IntermediateKeyWrapping_ struct {
  7223  }
  7224  
  7225  func (_this type_IntermediateKeyWrapping_) Default() interface{} {
  7226  	return Companion_IntermediateKeyWrapping_.Default()
  7227  }
  7228  
  7229  func (_this type_IntermediateKeyWrapping_) String() string {
  7230  	return "AwsCryptographyMaterialProvidersTypes.IntermediateKeyWrapping"
  7231  }
  7232  func (_this IntermediateKeyWrapping) ParentTraits_() []*_dafny.TraitID {
  7233  	return [](*_dafny.TraitID){}
  7234  }
  7235  
  7236  var _ _dafny.TraitOffspring = IntermediateKeyWrapping{}
  7237  
  7238  // End of datatype IntermediateKeyWrapping
  7239  
  7240  // Definition of datatype KeyAgreementScheme
  7241  type KeyAgreementScheme struct {
  7242  	Data_KeyAgreementScheme_
  7243  }
  7244  
  7245  func (_this KeyAgreementScheme) Get_() Data_KeyAgreementScheme_ {
  7246  	return _this.Data_KeyAgreementScheme_
  7247  }
  7248  
  7249  type Data_KeyAgreementScheme_ interface {
  7250  	isKeyAgreementScheme()
  7251  }
  7252  
  7253  type CompanionStruct_KeyAgreementScheme_ struct {
  7254  }
  7255  
  7256  var Companion_KeyAgreementScheme_ = CompanionStruct_KeyAgreementScheme_{}
  7257  
  7258  type KeyAgreementScheme_StaticConfiguration struct {
  7259  	StaticConfiguration StaticConfigurations
  7260  }
  7261  
  7262  func (KeyAgreementScheme_StaticConfiguration) isKeyAgreementScheme() {}
  7263  
  7264  func (CompanionStruct_KeyAgreementScheme_) Create_StaticConfiguration_(StaticConfiguration StaticConfigurations) KeyAgreementScheme {
  7265  	return KeyAgreementScheme{KeyAgreementScheme_StaticConfiguration{StaticConfiguration}}
  7266  }
  7267  
  7268  func (_this KeyAgreementScheme) Is_StaticConfiguration() bool {
  7269  	_, ok := _this.Get_().(KeyAgreementScheme_StaticConfiguration)
  7270  	return ok
  7271  }
  7272  
  7273  func (CompanionStruct_KeyAgreementScheme_) Default() KeyAgreementScheme {
  7274  	return Companion_KeyAgreementScheme_.Create_StaticConfiguration_(Companion_StaticConfigurations_.Default())
  7275  }
  7276  
  7277  func (_this KeyAgreementScheme) Dtor_StaticConfiguration() StaticConfigurations {
  7278  	return _this.Get_().(KeyAgreementScheme_StaticConfiguration).StaticConfiguration
  7279  }
  7280  
  7281  func (_this KeyAgreementScheme) String() string {
  7282  	switch data := _this.Get_().(type) {
  7283  	case nil:
  7284  		return "null"
  7285  	case KeyAgreementScheme_StaticConfiguration:
  7286  		{
  7287  			return "AwsCryptographyMaterialProvidersTypes.KeyAgreementScheme.StaticConfiguration" + "(" + _dafny.String(data.StaticConfiguration) + ")"
  7288  		}
  7289  	default:
  7290  		{
  7291  			return "<unexpected>"
  7292  		}
  7293  	}
  7294  }
  7295  
  7296  func (_this KeyAgreementScheme) Equals(other KeyAgreementScheme) bool {
  7297  	switch data1 := _this.Get_().(type) {
  7298  	case KeyAgreementScheme_StaticConfiguration:
  7299  		{
  7300  			data2, ok := other.Get_().(KeyAgreementScheme_StaticConfiguration)
  7301  			return ok && data1.StaticConfiguration.Equals(data2.StaticConfiguration)
  7302  		}
  7303  	default:
  7304  		{
  7305  			return false // unexpected
  7306  		}
  7307  	}
  7308  }
  7309  
  7310  func (_this KeyAgreementScheme) EqualsGeneric(other interface{}) bool {
  7311  	typed, ok := other.(KeyAgreementScheme)
  7312  	return ok && _this.Equals(typed)
  7313  }
  7314  
  7315  func Type_KeyAgreementScheme_() _dafny.TypeDescriptor {
  7316  	return type_KeyAgreementScheme_{}
  7317  }
  7318  
  7319  type type_KeyAgreementScheme_ struct {
  7320  }
  7321  
  7322  func (_this type_KeyAgreementScheme_) Default() interface{} {
  7323  	return Companion_KeyAgreementScheme_.Default()
  7324  }
  7325  
  7326  func (_this type_KeyAgreementScheme_) String() string {
  7327  	return "AwsCryptographyMaterialProvidersTypes.KeyAgreementScheme"
  7328  }
  7329  func (_this KeyAgreementScheme) ParentTraits_() []*_dafny.TraitID {
  7330  	return [](*_dafny.TraitID){}
  7331  }
  7332  
  7333  var _ _dafny.TraitOffspring = KeyAgreementScheme{}
  7334  
  7335  // End of datatype KeyAgreementScheme
  7336  
  7337  // Definition of class IKeyringCallHistory
  7338  type IKeyringCallHistory struct {
  7339  	dummy byte
  7340  }
  7341  
  7342  func New_IKeyringCallHistory_() *IKeyringCallHistory {
  7343  	_this := IKeyringCallHistory{}
  7344  
  7345  	return &_this
  7346  }
  7347  
  7348  type CompanionStruct_IKeyringCallHistory_ struct {
  7349  }
  7350  
  7351  var Companion_IKeyringCallHistory_ = CompanionStruct_IKeyringCallHistory_{}
  7352  
  7353  func (_this *IKeyringCallHistory) Equals(other *IKeyringCallHistory) bool {
  7354  	return _this == other
  7355  }
  7356  
  7357  func (_this *IKeyringCallHistory) EqualsGeneric(x interface{}) bool {
  7358  	other, ok := x.(*IKeyringCallHistory)
  7359  	return ok && _this.Equals(other)
  7360  }
  7361  
  7362  func (*IKeyringCallHistory) String() string {
  7363  	return "AwsCryptographyMaterialProvidersTypes.IKeyringCallHistory"
  7364  }
  7365  
  7366  func Type_IKeyringCallHistory_() _dafny.TypeDescriptor {
  7367  	return type_IKeyringCallHistory_{}
  7368  }
  7369  
  7370  type type_IKeyringCallHistory_ struct {
  7371  }
  7372  
  7373  func (_this type_IKeyringCallHistory_) Default() interface{} {
  7374  	return (*IKeyringCallHistory)(nil)
  7375  }
  7376  
  7377  func (_this type_IKeyringCallHistory_) String() string {
  7378  	return "AwsCryptographyMaterialProvidersTypes.IKeyringCallHistory"
  7379  }
  7380  func (_this *IKeyringCallHistory) ParentTraits_() []*_dafny.TraitID {
  7381  	return [](*_dafny.TraitID){}
  7382  }
  7383  
  7384  var _ _dafny.TraitOffspring = &IKeyringCallHistory{}
  7385  
  7386  // End of class IKeyringCallHistory
  7387  
  7388  // Definition of trait IKeyring
  7389  type IKeyring interface {
  7390  	String() string
  7391  	OnEncrypt(input OnEncryptInput) m_Wrappers.Result
  7392  	OnEncrypt_k(input OnEncryptInput) m_Wrappers.Result
  7393  	OnDecrypt(input OnDecryptInput) m_Wrappers.Result
  7394  	OnDecrypt_k(input OnDecryptInput) m_Wrappers.Result
  7395  }
  7396  
  7397  func (_static *CompanionStruct_IKeyring_) OnEncrypt(_this IKeyring, input OnEncryptInput) m_Wrappers.Result {
  7398  	{
  7399  		var output m_Wrappers.Result = m_Wrappers.Result{}
  7400  		_ = output
  7401  		var _out0 m_Wrappers.Result
  7402  		_ = _out0
  7403  		_out0 = (_this).OnEncrypt_k(input)
  7404  		output = _out0
  7405  		return output
  7406  	}
  7407  }
  7408  func (_static *CompanionStruct_IKeyring_) OnDecrypt(_this IKeyring, input OnDecryptInput) m_Wrappers.Result {
  7409  	{
  7410  		var output m_Wrappers.Result = m_Wrappers.Result{}
  7411  		_ = output
  7412  		var _out0 m_Wrappers.Result
  7413  		_ = _out0
  7414  		_out0 = (_this).OnDecrypt_k(input)
  7415  		output = _out0
  7416  		return output
  7417  	}
  7418  }
  7419  
  7420  type CompanionStruct_IKeyring_ struct {
  7421  	TraitID_ *_dafny.TraitID
  7422  }
  7423  
  7424  var Companion_IKeyring_ = CompanionStruct_IKeyring_{
  7425  	TraitID_: &_dafny.TraitID{},
  7426  }
  7427  
  7428  func (CompanionStruct_IKeyring_) CastTo_(x interface{}) IKeyring {
  7429  	var t IKeyring
  7430  	t, _ = x.(IKeyring)
  7431  	return t
  7432  }
  7433  
  7434  // End of trait IKeyring
  7435  
  7436  // Definition of datatype KmsEcdhStaticConfigurations
  7437  type KmsEcdhStaticConfigurations struct {
  7438  	Data_KmsEcdhStaticConfigurations_
  7439  }
  7440  
  7441  func (_this KmsEcdhStaticConfigurations) Get_() Data_KmsEcdhStaticConfigurations_ {
  7442  	return _this.Data_KmsEcdhStaticConfigurations_
  7443  }
  7444  
  7445  type Data_KmsEcdhStaticConfigurations_ interface {
  7446  	isKmsEcdhStaticConfigurations()
  7447  }
  7448  
  7449  type CompanionStruct_KmsEcdhStaticConfigurations_ struct {
  7450  }
  7451  
  7452  var Companion_KmsEcdhStaticConfigurations_ = CompanionStruct_KmsEcdhStaticConfigurations_{}
  7453  
  7454  type KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery struct {
  7455  	KmsPublicKeyDiscovery KmsPublicKeyDiscoveryInput
  7456  }
  7457  
  7458  func (KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery) isKmsEcdhStaticConfigurations() {}
  7459  
  7460  func (CompanionStruct_KmsEcdhStaticConfigurations_) Create_KmsPublicKeyDiscovery_(KmsPublicKeyDiscovery KmsPublicKeyDiscoveryInput) KmsEcdhStaticConfigurations {
  7461  	return KmsEcdhStaticConfigurations{KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery{KmsPublicKeyDiscovery}}
  7462  }
  7463  
  7464  func (_this KmsEcdhStaticConfigurations) Is_KmsPublicKeyDiscovery() bool {
  7465  	_, ok := _this.Get_().(KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery)
  7466  	return ok
  7467  }
  7468  
  7469  type KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey struct {
  7470  	KmsPrivateKeyToStaticPublicKey KmsPrivateKeyToStaticPublicKeyInput
  7471  }
  7472  
  7473  func (KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey) isKmsEcdhStaticConfigurations() {}
  7474  
  7475  func (CompanionStruct_KmsEcdhStaticConfigurations_) Create_KmsPrivateKeyToStaticPublicKey_(KmsPrivateKeyToStaticPublicKey KmsPrivateKeyToStaticPublicKeyInput) KmsEcdhStaticConfigurations {
  7476  	return KmsEcdhStaticConfigurations{KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey{KmsPrivateKeyToStaticPublicKey}}
  7477  }
  7478  
  7479  func (_this KmsEcdhStaticConfigurations) Is_KmsPrivateKeyToStaticPublicKey() bool {
  7480  	_, ok := _this.Get_().(KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey)
  7481  	return ok
  7482  }
  7483  
  7484  func (CompanionStruct_KmsEcdhStaticConfigurations_) Default() KmsEcdhStaticConfigurations {
  7485  	return Companion_KmsEcdhStaticConfigurations_.Create_KmsPublicKeyDiscovery_(Companion_KmsPublicKeyDiscoveryInput_.Default())
  7486  }
  7487  
  7488  func (_this KmsEcdhStaticConfigurations) Dtor_KmsPublicKeyDiscovery() KmsPublicKeyDiscoveryInput {
  7489  	return _this.Get_().(KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery).KmsPublicKeyDiscovery
  7490  }
  7491  
  7492  func (_this KmsEcdhStaticConfigurations) Dtor_KmsPrivateKeyToStaticPublicKey() KmsPrivateKeyToStaticPublicKeyInput {
  7493  	return _this.Get_().(KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey).KmsPrivateKeyToStaticPublicKey
  7494  }
  7495  
  7496  func (_this KmsEcdhStaticConfigurations) String() string {
  7497  	switch data := _this.Get_().(type) {
  7498  	case nil:
  7499  		return "null"
  7500  	case KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery:
  7501  		{
  7502  			return "AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations.KmsPublicKeyDiscovery" + "(" + _dafny.String(data.KmsPublicKeyDiscovery) + ")"
  7503  		}
  7504  	case KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey:
  7505  		{
  7506  			return "AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations.KmsPrivateKeyToStaticPublicKey" + "(" + _dafny.String(data.KmsPrivateKeyToStaticPublicKey) + ")"
  7507  		}
  7508  	default:
  7509  		{
  7510  			return "<unexpected>"
  7511  		}
  7512  	}
  7513  }
  7514  
  7515  func (_this KmsEcdhStaticConfigurations) Equals(other KmsEcdhStaticConfigurations) bool {
  7516  	switch data1 := _this.Get_().(type) {
  7517  	case KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery:
  7518  		{
  7519  			data2, ok := other.Get_().(KmsEcdhStaticConfigurations_KmsPublicKeyDiscovery)
  7520  			return ok && data1.KmsPublicKeyDiscovery.Equals(data2.KmsPublicKeyDiscovery)
  7521  		}
  7522  	case KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey:
  7523  		{
  7524  			data2, ok := other.Get_().(KmsEcdhStaticConfigurations_KmsPrivateKeyToStaticPublicKey)
  7525  			return ok && data1.KmsPrivateKeyToStaticPublicKey.Equals(data2.KmsPrivateKeyToStaticPublicKey)
  7526  		}
  7527  	default:
  7528  		{
  7529  			return false // unexpected
  7530  		}
  7531  	}
  7532  }
  7533  
  7534  func (_this KmsEcdhStaticConfigurations) EqualsGeneric(other interface{}) bool {
  7535  	typed, ok := other.(KmsEcdhStaticConfigurations)
  7536  	return ok && _this.Equals(typed)
  7537  }
  7538  
  7539  func Type_KmsEcdhStaticConfigurations_() _dafny.TypeDescriptor {
  7540  	return type_KmsEcdhStaticConfigurations_{}
  7541  }
  7542  
  7543  type type_KmsEcdhStaticConfigurations_ struct {
  7544  }
  7545  
  7546  func (_this type_KmsEcdhStaticConfigurations_) Default() interface{} {
  7547  	return Companion_KmsEcdhStaticConfigurations_.Default()
  7548  }
  7549  
  7550  func (_this type_KmsEcdhStaticConfigurations_) String() string {
  7551  	return "AwsCryptographyMaterialProvidersTypes.KmsEcdhStaticConfigurations"
  7552  }
  7553  func (_this KmsEcdhStaticConfigurations) ParentTraits_() []*_dafny.TraitID {
  7554  	return [](*_dafny.TraitID){}
  7555  }
  7556  
  7557  var _ _dafny.TraitOffspring = KmsEcdhStaticConfigurations{}
  7558  
  7559  // End of datatype KmsEcdhStaticConfigurations
  7560  
  7561  // Definition of datatype KmsPrivateKeyToStaticPublicKeyInput
  7562  type KmsPrivateKeyToStaticPublicKeyInput struct {
  7563  	Data_KmsPrivateKeyToStaticPublicKeyInput_
  7564  }
  7565  
  7566  func (_this KmsPrivateKeyToStaticPublicKeyInput) Get_() Data_KmsPrivateKeyToStaticPublicKeyInput_ {
  7567  	return _this.Data_KmsPrivateKeyToStaticPublicKeyInput_
  7568  }
  7569  
  7570  type Data_KmsPrivateKeyToStaticPublicKeyInput_ interface {
  7571  	isKmsPrivateKeyToStaticPublicKeyInput()
  7572  }
  7573  
  7574  type CompanionStruct_KmsPrivateKeyToStaticPublicKeyInput_ struct {
  7575  }
  7576  
  7577  var Companion_KmsPrivateKeyToStaticPublicKeyInput_ = CompanionStruct_KmsPrivateKeyToStaticPublicKeyInput_{}
  7578  
  7579  type KmsPrivateKeyToStaticPublicKeyInput_KmsPrivateKeyToStaticPublicKeyInput struct {
  7580  	SenderKmsIdentifier _dafny.Sequence
  7581  	SenderPublicKey     m_Wrappers.Option
  7582  	RecipientPublicKey  _dafny.Sequence
  7583  }
  7584  
  7585  func (KmsPrivateKeyToStaticPublicKeyInput_KmsPrivateKeyToStaticPublicKeyInput) isKmsPrivateKeyToStaticPublicKeyInput() {
  7586  }
  7587  
  7588  func (CompanionStruct_KmsPrivateKeyToStaticPublicKeyInput_) Create_KmsPrivateKeyToStaticPublicKeyInput_(SenderKmsIdentifier _dafny.Sequence, SenderPublicKey m_Wrappers.Option, RecipientPublicKey _dafny.Sequence) KmsPrivateKeyToStaticPublicKeyInput {
  7589  	return KmsPrivateKeyToStaticPublicKeyInput{KmsPrivateKeyToStaticPublicKeyInput_KmsPrivateKeyToStaticPublicKeyInput{SenderKmsIdentifier, SenderPublicKey, RecipientPublicKey}}
  7590  }
  7591  
  7592  func (_this KmsPrivateKeyToStaticPublicKeyInput) Is_KmsPrivateKeyToStaticPublicKeyInput() bool {
  7593  	_, ok := _this.Get_().(KmsPrivateKeyToStaticPublicKeyInput_KmsPrivateKeyToStaticPublicKeyInput)
  7594  	return ok
  7595  }
  7596  
  7597  func (CompanionStruct_KmsPrivateKeyToStaticPublicKeyInput_) Default() KmsPrivateKeyToStaticPublicKeyInput {
  7598  	return Companion_KmsPrivateKeyToStaticPublicKeyInput_.Create_KmsPrivateKeyToStaticPublicKeyInput_(_dafny.EmptySeq.SetString(), m_Wrappers.Companion_Option_.Default(), _dafny.EmptySeq)
  7599  }
  7600  
  7601  func (_this KmsPrivateKeyToStaticPublicKeyInput) Dtor_senderKmsIdentifier() _dafny.Sequence {
  7602  	return _this.Get_().(KmsPrivateKeyToStaticPublicKeyInput_KmsPrivateKeyToStaticPublicKeyInput).SenderKmsIdentifier
  7603  }
  7604  
  7605  func (_this KmsPrivateKeyToStaticPublicKeyInput) Dtor_senderPublicKey() m_Wrappers.Option {
  7606  	return _this.Get_().(KmsPrivateKeyToStaticPublicKeyInput_KmsPrivateKeyToStaticPublicKeyInput).SenderPublicKey
  7607  }
  7608  
  7609  func (_this KmsPrivateKeyToStaticPublicKeyInput) Dtor_recipientPublicKey() _dafny.Sequence {
  7610  	return _this.Get_().(KmsPrivateKeyToStaticPublicKeyInput_KmsPrivateKeyToStaticPublicKeyInput).RecipientPublicKey
  7611  }
  7612  
  7613  func (_this KmsPrivateKeyToStaticPublicKeyInput) String() string {
  7614  	switch data := _this.Get_().(type) {
  7615  	case nil:
  7616  		return "null"
  7617  	case KmsPrivateKeyToStaticPublicKeyInput_KmsPrivateKeyToStaticPublicKeyInput:
  7618  		{
  7619  			return "AwsCryptographyMaterialProvidersTypes.KmsPrivateKeyToStaticPublicKeyInput.KmsPrivateKeyToStaticPublicKeyInput" + "(" + _dafny.String(data.SenderKmsIdentifier) + ", " + _dafny.String(data.SenderPublicKey) + ", " + _dafny.String(data.RecipientPublicKey) + ")"
  7620  		}
  7621  	default:
  7622  		{
  7623  			return "<unexpected>"
  7624  		}
  7625  	}
  7626  }
  7627  
  7628  func (_this KmsPrivateKeyToStaticPublicKeyInput) Equals(other KmsPrivateKeyToStaticPublicKeyInput) bool {
  7629  	switch data1 := _this.Get_().(type) {
  7630  	case KmsPrivateKeyToStaticPublicKeyInput_KmsPrivateKeyToStaticPublicKeyInput:
  7631  		{
  7632  			data2, ok := other.Get_().(KmsPrivateKeyToStaticPublicKeyInput_KmsPrivateKeyToStaticPublicKeyInput)
  7633  			return ok && data1.SenderKmsIdentifier.Equals(data2.SenderKmsIdentifier) && data1.SenderPublicKey.Equals(data2.SenderPublicKey) && data1.RecipientPublicKey.Equals(data2.RecipientPublicKey)
  7634  		}
  7635  	default:
  7636  		{
  7637  			return false // unexpected
  7638  		}
  7639  	}
  7640  }
  7641  
  7642  func (_this KmsPrivateKeyToStaticPublicKeyInput) EqualsGeneric(other interface{}) bool {
  7643  	typed, ok := other.(KmsPrivateKeyToStaticPublicKeyInput)
  7644  	return ok && _this.Equals(typed)
  7645  }
  7646  
  7647  func Type_KmsPrivateKeyToStaticPublicKeyInput_() _dafny.TypeDescriptor {
  7648  	return type_KmsPrivateKeyToStaticPublicKeyInput_{}
  7649  }
  7650  
  7651  type type_KmsPrivateKeyToStaticPublicKeyInput_ struct {
  7652  }
  7653  
  7654  func (_this type_KmsPrivateKeyToStaticPublicKeyInput_) Default() interface{} {
  7655  	return Companion_KmsPrivateKeyToStaticPublicKeyInput_.Default()
  7656  }
  7657  
  7658  func (_this type_KmsPrivateKeyToStaticPublicKeyInput_) String() string {
  7659  	return "AwsCryptographyMaterialProvidersTypes.KmsPrivateKeyToStaticPublicKeyInput"
  7660  }
  7661  func (_this KmsPrivateKeyToStaticPublicKeyInput) ParentTraits_() []*_dafny.TraitID {
  7662  	return [](*_dafny.TraitID){}
  7663  }
  7664  
  7665  var _ _dafny.TraitOffspring = KmsPrivateKeyToStaticPublicKeyInput{}
  7666  
  7667  // End of datatype KmsPrivateKeyToStaticPublicKeyInput
  7668  
  7669  // Definition of datatype KmsPublicKeyDiscoveryInput
  7670  type KmsPublicKeyDiscoveryInput struct {
  7671  	Data_KmsPublicKeyDiscoveryInput_
  7672  }
  7673  
  7674  func (_this KmsPublicKeyDiscoveryInput) Get_() Data_KmsPublicKeyDiscoveryInput_ {
  7675  	return _this.Data_KmsPublicKeyDiscoveryInput_
  7676  }
  7677  
  7678  type Data_KmsPublicKeyDiscoveryInput_ interface {
  7679  	isKmsPublicKeyDiscoveryInput()
  7680  }
  7681  
  7682  type CompanionStruct_KmsPublicKeyDiscoveryInput_ struct {
  7683  }
  7684  
  7685  var Companion_KmsPublicKeyDiscoveryInput_ = CompanionStruct_KmsPublicKeyDiscoveryInput_{}
  7686  
  7687  type KmsPublicKeyDiscoveryInput_KmsPublicKeyDiscoveryInput struct {
  7688  	RecipientKmsIdentifier _dafny.Sequence
  7689  }
  7690  
  7691  func (KmsPublicKeyDiscoveryInput_KmsPublicKeyDiscoveryInput) isKmsPublicKeyDiscoveryInput() {}
  7692  
  7693  func (CompanionStruct_KmsPublicKeyDiscoveryInput_) Create_KmsPublicKeyDiscoveryInput_(RecipientKmsIdentifier _dafny.Sequence) KmsPublicKeyDiscoveryInput {
  7694  	return KmsPublicKeyDiscoveryInput{KmsPublicKeyDiscoveryInput_KmsPublicKeyDiscoveryInput{RecipientKmsIdentifier}}
  7695  }
  7696  
  7697  func (_this KmsPublicKeyDiscoveryInput) Is_KmsPublicKeyDiscoveryInput() bool {
  7698  	_, ok := _this.Get_().(KmsPublicKeyDiscoveryInput_KmsPublicKeyDiscoveryInput)
  7699  	return ok
  7700  }
  7701  
  7702  func (CompanionStruct_KmsPublicKeyDiscoveryInput_) Default() KmsPublicKeyDiscoveryInput {
  7703  	return Companion_KmsPublicKeyDiscoveryInput_.Create_KmsPublicKeyDiscoveryInput_(_dafny.EmptySeq.SetString())
  7704  }
  7705  
  7706  func (_this KmsPublicKeyDiscoveryInput) Dtor_recipientKmsIdentifier() _dafny.Sequence {
  7707  	return _this.Get_().(KmsPublicKeyDiscoveryInput_KmsPublicKeyDiscoveryInput).RecipientKmsIdentifier
  7708  }
  7709  
  7710  func (_this KmsPublicKeyDiscoveryInput) String() string {
  7711  	switch data := _this.Get_().(type) {
  7712  	case nil:
  7713  		return "null"
  7714  	case KmsPublicKeyDiscoveryInput_KmsPublicKeyDiscoveryInput:
  7715  		{
  7716  			return "AwsCryptographyMaterialProvidersTypes.KmsPublicKeyDiscoveryInput.KmsPublicKeyDiscoveryInput" + "(" + _dafny.String(data.RecipientKmsIdentifier) + ")"
  7717  		}
  7718  	default:
  7719  		{
  7720  			return "<unexpected>"
  7721  		}
  7722  	}
  7723  }
  7724  
  7725  func (_this KmsPublicKeyDiscoveryInput) Equals(other KmsPublicKeyDiscoveryInput) bool {
  7726  	switch data1 := _this.Get_().(type) {
  7727  	case KmsPublicKeyDiscoveryInput_KmsPublicKeyDiscoveryInput:
  7728  		{
  7729  			data2, ok := other.Get_().(KmsPublicKeyDiscoveryInput_KmsPublicKeyDiscoveryInput)
  7730  			return ok && data1.RecipientKmsIdentifier.Equals(data2.RecipientKmsIdentifier)
  7731  		}
  7732  	default:
  7733  		{
  7734  			return false // unexpected
  7735  		}
  7736  	}
  7737  }
  7738  
  7739  func (_this KmsPublicKeyDiscoveryInput) EqualsGeneric(other interface{}) bool {
  7740  	typed, ok := other.(KmsPublicKeyDiscoveryInput)
  7741  	return ok && _this.Equals(typed)
  7742  }
  7743  
  7744  func Type_KmsPublicKeyDiscoveryInput_() _dafny.TypeDescriptor {
  7745  	return type_KmsPublicKeyDiscoveryInput_{}
  7746  }
  7747  
  7748  type type_KmsPublicKeyDiscoveryInput_ struct {
  7749  }
  7750  
  7751  func (_this type_KmsPublicKeyDiscoveryInput_) Default() interface{} {
  7752  	return Companion_KmsPublicKeyDiscoveryInput_.Default()
  7753  }
  7754  
  7755  func (_this type_KmsPublicKeyDiscoveryInput_) String() string {
  7756  	return "AwsCryptographyMaterialProvidersTypes.KmsPublicKeyDiscoveryInput"
  7757  }
  7758  func (_this KmsPublicKeyDiscoveryInput) ParentTraits_() []*_dafny.TraitID {
  7759  	return [](*_dafny.TraitID){}
  7760  }
  7761  
  7762  var _ _dafny.TraitOffspring = KmsPublicKeyDiscoveryInput{}
  7763  
  7764  // End of datatype KmsPublicKeyDiscoveryInput
  7765  
  7766  // Definition of datatype MaterialProvidersConfig
  7767  type MaterialProvidersConfig struct {
  7768  	Data_MaterialProvidersConfig_
  7769  }
  7770  
  7771  func (_this MaterialProvidersConfig) Get_() Data_MaterialProvidersConfig_ {
  7772  	return _this.Data_MaterialProvidersConfig_
  7773  }
  7774  
  7775  type Data_MaterialProvidersConfig_ interface {
  7776  	isMaterialProvidersConfig()
  7777  }
  7778  
  7779  type CompanionStruct_MaterialProvidersConfig_ struct {
  7780  }
  7781  
  7782  var Companion_MaterialProvidersConfig_ = CompanionStruct_MaterialProvidersConfig_{}
  7783  
  7784  type MaterialProvidersConfig_MaterialProvidersConfig struct {
  7785  }
  7786  
  7787  func (MaterialProvidersConfig_MaterialProvidersConfig) isMaterialProvidersConfig() {}
  7788  
  7789  func (CompanionStruct_MaterialProvidersConfig_) Create_MaterialProvidersConfig_() MaterialProvidersConfig {
  7790  	return MaterialProvidersConfig{MaterialProvidersConfig_MaterialProvidersConfig{}}
  7791  }
  7792  
  7793  func (_this MaterialProvidersConfig) Is_MaterialProvidersConfig() bool {
  7794  	_, ok := _this.Get_().(MaterialProvidersConfig_MaterialProvidersConfig)
  7795  	return ok
  7796  }
  7797  
  7798  func (CompanionStruct_MaterialProvidersConfig_) Default() MaterialProvidersConfig {
  7799  	return Companion_MaterialProvidersConfig_.Create_MaterialProvidersConfig_()
  7800  }
  7801  
  7802  func (_ CompanionStruct_MaterialProvidersConfig_) AllSingletonConstructors() _dafny.Iterator {
  7803  	i := -1
  7804  	return func() (interface{}, bool) {
  7805  		i++
  7806  		switch i {
  7807  		case 0:
  7808  			return Companion_MaterialProvidersConfig_.Create_MaterialProvidersConfig_(), true
  7809  		default:
  7810  			return MaterialProvidersConfig{}, false
  7811  		}
  7812  	}
  7813  }
  7814  
  7815  func (_this MaterialProvidersConfig) String() string {
  7816  	switch _this.Get_().(type) {
  7817  	case nil:
  7818  		return "null"
  7819  	case MaterialProvidersConfig_MaterialProvidersConfig:
  7820  		{
  7821  			return "AwsCryptographyMaterialProvidersTypes.MaterialProvidersConfig.MaterialProvidersConfig"
  7822  		}
  7823  	default:
  7824  		{
  7825  			return "<unexpected>"
  7826  		}
  7827  	}
  7828  }
  7829  
  7830  func (_this MaterialProvidersConfig) Equals(other MaterialProvidersConfig) bool {
  7831  	switch _this.Get_().(type) {
  7832  	case MaterialProvidersConfig_MaterialProvidersConfig:
  7833  		{
  7834  			_, ok := other.Get_().(MaterialProvidersConfig_MaterialProvidersConfig)
  7835  			return ok
  7836  		}
  7837  	default:
  7838  		{
  7839  			return false // unexpected
  7840  		}
  7841  	}
  7842  }
  7843  
  7844  func (_this MaterialProvidersConfig) EqualsGeneric(other interface{}) bool {
  7845  	typed, ok := other.(MaterialProvidersConfig)
  7846  	return ok && _this.Equals(typed)
  7847  }
  7848  
  7849  func Type_MaterialProvidersConfig_() _dafny.TypeDescriptor {
  7850  	return type_MaterialProvidersConfig_{}
  7851  }
  7852  
  7853  type type_MaterialProvidersConfig_ struct {
  7854  }
  7855  
  7856  func (_this type_MaterialProvidersConfig_) Default() interface{} {
  7857  	return Companion_MaterialProvidersConfig_.Default()
  7858  }
  7859  
  7860  func (_this type_MaterialProvidersConfig_) String() string {
  7861  	return "AwsCryptographyMaterialProvidersTypes.MaterialProvidersConfig"
  7862  }
  7863  func (_this MaterialProvidersConfig) ParentTraits_() []*_dafny.TraitID {
  7864  	return [](*_dafny.TraitID){}
  7865  }
  7866  
  7867  var _ _dafny.TraitOffspring = MaterialProvidersConfig{}
  7868  
  7869  // End of datatype MaterialProvidersConfig
  7870  
  7871  // Definition of datatype Materials
  7872  type Materials struct {
  7873  	Data_Materials_
  7874  }
  7875  
  7876  func (_this Materials) Get_() Data_Materials_ {
  7877  	return _this.Data_Materials_
  7878  }
  7879  
  7880  type Data_Materials_ interface {
  7881  	isMaterials()
  7882  }
  7883  
  7884  type CompanionStruct_Materials_ struct {
  7885  }
  7886  
  7887  var Companion_Materials_ = CompanionStruct_Materials_{}
  7888  
  7889  type Materials_Encryption struct {
  7890  	Encryption EncryptionMaterials
  7891  }
  7892  
  7893  func (Materials_Encryption) isMaterials() {}
  7894  
  7895  func (CompanionStruct_Materials_) Create_Encryption_(Encryption EncryptionMaterials) Materials {
  7896  	return Materials{Materials_Encryption{Encryption}}
  7897  }
  7898  
  7899  func (_this Materials) Is_Encryption() bool {
  7900  	_, ok := _this.Get_().(Materials_Encryption)
  7901  	return ok
  7902  }
  7903  
  7904  type Materials_Decryption struct {
  7905  	Decryption DecryptionMaterials
  7906  }
  7907  
  7908  func (Materials_Decryption) isMaterials() {}
  7909  
  7910  func (CompanionStruct_Materials_) Create_Decryption_(Decryption DecryptionMaterials) Materials {
  7911  	return Materials{Materials_Decryption{Decryption}}
  7912  }
  7913  
  7914  func (_this Materials) Is_Decryption() bool {
  7915  	_, ok := _this.Get_().(Materials_Decryption)
  7916  	return ok
  7917  }
  7918  
  7919  type Materials_BranchKey struct {
  7920  	BranchKey m_AwsCryptographyKeyStoreTypes.BranchKeyMaterials
  7921  }
  7922  
  7923  func (Materials_BranchKey) isMaterials() {}
  7924  
  7925  func (CompanionStruct_Materials_) Create_BranchKey_(BranchKey m_AwsCryptographyKeyStoreTypes.BranchKeyMaterials) Materials {
  7926  	return Materials{Materials_BranchKey{BranchKey}}
  7927  }
  7928  
  7929  func (_this Materials) Is_BranchKey() bool {
  7930  	_, ok := _this.Get_().(Materials_BranchKey)
  7931  	return ok
  7932  }
  7933  
  7934  type Materials_BeaconKey struct {
  7935  	BeaconKey m_AwsCryptographyKeyStoreTypes.BeaconKeyMaterials
  7936  }
  7937  
  7938  func (Materials_BeaconKey) isMaterials() {}
  7939  
  7940  func (CompanionStruct_Materials_) Create_BeaconKey_(BeaconKey m_AwsCryptographyKeyStoreTypes.BeaconKeyMaterials) Materials {
  7941  	return Materials{Materials_BeaconKey{BeaconKey}}
  7942  }
  7943  
  7944  func (_this Materials) Is_BeaconKey() bool {
  7945  	_, ok := _this.Get_().(Materials_BeaconKey)
  7946  	return ok
  7947  }
  7948  
  7949  func (CompanionStruct_Materials_) Default() Materials {
  7950  	return Companion_Materials_.Create_Encryption_(Companion_EncryptionMaterials_.Default())
  7951  }
  7952  
  7953  func (_this Materials) Dtor_Encryption() EncryptionMaterials {
  7954  	return _this.Get_().(Materials_Encryption).Encryption
  7955  }
  7956  
  7957  func (_this Materials) Dtor_Decryption() DecryptionMaterials {
  7958  	return _this.Get_().(Materials_Decryption).Decryption
  7959  }
  7960  
  7961  func (_this Materials) Dtor_BranchKey() m_AwsCryptographyKeyStoreTypes.BranchKeyMaterials {
  7962  	return _this.Get_().(Materials_BranchKey).BranchKey
  7963  }
  7964  
  7965  func (_this Materials) Dtor_BeaconKey() m_AwsCryptographyKeyStoreTypes.BeaconKeyMaterials {
  7966  	return _this.Get_().(Materials_BeaconKey).BeaconKey
  7967  }
  7968  
  7969  func (_this Materials) String() string {
  7970  	switch data := _this.Get_().(type) {
  7971  	case nil:
  7972  		return "null"
  7973  	case Materials_Encryption:
  7974  		{
  7975  			return "AwsCryptographyMaterialProvidersTypes.Materials.Encryption" + "(" + _dafny.String(data.Encryption) + ")"
  7976  		}
  7977  	case Materials_Decryption:
  7978  		{
  7979  			return "AwsCryptographyMaterialProvidersTypes.Materials.Decryption" + "(" + _dafny.String(data.Decryption) + ")"
  7980  		}
  7981  	case Materials_BranchKey:
  7982  		{
  7983  			return "AwsCryptographyMaterialProvidersTypes.Materials.BranchKey" + "(" + _dafny.String(data.BranchKey) + ")"
  7984  		}
  7985  	case Materials_BeaconKey:
  7986  		{
  7987  			return "AwsCryptographyMaterialProvidersTypes.Materials.BeaconKey" + "(" + _dafny.String(data.BeaconKey) + ")"
  7988  		}
  7989  	default:
  7990  		{
  7991  			return "<unexpected>"
  7992  		}
  7993  	}
  7994  }
  7995  
  7996  func (_this Materials) Equals(other Materials) bool {
  7997  	switch data1 := _this.Get_().(type) {
  7998  	case Materials_Encryption:
  7999  		{
  8000  			data2, ok := other.Get_().(Materials_Encryption)
  8001  			return ok && data1.Encryption.Equals(data2.Encryption)
  8002  		}
  8003  	case Materials_Decryption:
  8004  		{
  8005  			data2, ok := other.Get_().(Materials_Decryption)
  8006  			return ok && data1.Decryption.Equals(data2.Decryption)
  8007  		}
  8008  	case Materials_BranchKey:
  8009  		{
  8010  			data2, ok := other.Get_().(Materials_BranchKey)
  8011  			return ok && data1.BranchKey.Equals(data2.BranchKey)
  8012  		}
  8013  	case Materials_BeaconKey:
  8014  		{
  8015  			data2, ok := other.Get_().(Materials_BeaconKey)
  8016  			return ok && data1.BeaconKey.Equals(data2.BeaconKey)
  8017  		}
  8018  	default:
  8019  		{
  8020  			return false // unexpected
  8021  		}
  8022  	}
  8023  }
  8024  
  8025  func (_this Materials) EqualsGeneric(other interface{}) bool {
  8026  	typed, ok := other.(Materials)
  8027  	return ok && _this.Equals(typed)
  8028  }
  8029  
  8030  func Type_Materials_() _dafny.TypeDescriptor {
  8031  	return type_Materials_{}
  8032  }
  8033  
  8034  type type_Materials_ struct {
  8035  }
  8036  
  8037  func (_this type_Materials_) Default() interface{} {
  8038  	return Companion_Materials_.Default()
  8039  }
  8040  
  8041  func (_this type_Materials_) String() string {
  8042  	return "AwsCryptographyMaterialProvidersTypes.Materials"
  8043  }
  8044  func (_this Materials) ParentTraits_() []*_dafny.TraitID {
  8045  	return [](*_dafny.TraitID){}
  8046  }
  8047  
  8048  var _ _dafny.TraitOffspring = Materials{}
  8049  
  8050  // End of datatype Materials
  8051  
  8052  // Definition of datatype MultiThreadedCache
  8053  type MultiThreadedCache struct {
  8054  	Data_MultiThreadedCache_
  8055  }
  8056  
  8057  func (_this MultiThreadedCache) Get_() Data_MultiThreadedCache_ {
  8058  	return _this.Data_MultiThreadedCache_
  8059  }
  8060  
  8061  type Data_MultiThreadedCache_ interface {
  8062  	isMultiThreadedCache()
  8063  }
  8064  
  8065  type CompanionStruct_MultiThreadedCache_ struct {
  8066  }
  8067  
  8068  var Companion_MultiThreadedCache_ = CompanionStruct_MultiThreadedCache_{}
  8069  
  8070  type MultiThreadedCache_MultiThreadedCache struct {
  8071  	EntryCapacity        int32
  8072  	EntryPruningTailSize m_Wrappers.Option
  8073  }
  8074  
  8075  func (MultiThreadedCache_MultiThreadedCache) isMultiThreadedCache() {}
  8076  
  8077  func (CompanionStruct_MultiThreadedCache_) Create_MultiThreadedCache_(EntryCapacity int32, EntryPruningTailSize m_Wrappers.Option) MultiThreadedCache {
  8078  	return MultiThreadedCache{MultiThreadedCache_MultiThreadedCache{EntryCapacity, EntryPruningTailSize}}
  8079  }
  8080  
  8081  func (_this MultiThreadedCache) Is_MultiThreadedCache() bool {
  8082  	_, ok := _this.Get_().(MultiThreadedCache_MultiThreadedCache)
  8083  	return ok
  8084  }
  8085  
  8086  func (CompanionStruct_MultiThreadedCache_) Default() MultiThreadedCache {
  8087  	return Companion_MultiThreadedCache_.Create_MultiThreadedCache_(int32(0), m_Wrappers.Companion_Option_.Default())
  8088  }
  8089  
  8090  func (_this MultiThreadedCache) Dtor_entryCapacity() int32 {
  8091  	return _this.Get_().(MultiThreadedCache_MultiThreadedCache).EntryCapacity
  8092  }
  8093  
  8094  func (_this MultiThreadedCache) Dtor_entryPruningTailSize() m_Wrappers.Option {
  8095  	return _this.Get_().(MultiThreadedCache_MultiThreadedCache).EntryPruningTailSize
  8096  }
  8097  
  8098  func (_this MultiThreadedCache) String() string {
  8099  	switch data := _this.Get_().(type) {
  8100  	case nil:
  8101  		return "null"
  8102  	case MultiThreadedCache_MultiThreadedCache:
  8103  		{
  8104  			return "AwsCryptographyMaterialProvidersTypes.MultiThreadedCache.MultiThreadedCache" + "(" + _dafny.String(data.EntryCapacity) + ", " + _dafny.String(data.EntryPruningTailSize) + ")"
  8105  		}
  8106  	default:
  8107  		{
  8108  			return "<unexpected>"
  8109  		}
  8110  	}
  8111  }
  8112  
  8113  func (_this MultiThreadedCache) Equals(other MultiThreadedCache) bool {
  8114  	switch data1 := _this.Get_().(type) {
  8115  	case MultiThreadedCache_MultiThreadedCache:
  8116  		{
  8117  			data2, ok := other.Get_().(MultiThreadedCache_MultiThreadedCache)
  8118  			return ok && data1.EntryCapacity == data2.EntryCapacity && data1.EntryPruningTailSize.Equals(data2.EntryPruningTailSize)
  8119  		}
  8120  	default:
  8121  		{
  8122  			return false // unexpected
  8123  		}
  8124  	}
  8125  }
  8126  
  8127  func (_this MultiThreadedCache) EqualsGeneric(other interface{}) bool {
  8128  	typed, ok := other.(MultiThreadedCache)
  8129  	return ok && _this.Equals(typed)
  8130  }
  8131  
  8132  func Type_MultiThreadedCache_() _dafny.TypeDescriptor {
  8133  	return type_MultiThreadedCache_{}
  8134  }
  8135  
  8136  type type_MultiThreadedCache_ struct {
  8137  }
  8138  
  8139  func (_this type_MultiThreadedCache_) Default() interface{} {
  8140  	return Companion_MultiThreadedCache_.Default()
  8141  }
  8142  
  8143  func (_this type_MultiThreadedCache_) String() string {
  8144  	return "AwsCryptographyMaterialProvidersTypes.MultiThreadedCache"
  8145  }
  8146  func (_this MultiThreadedCache) ParentTraits_() []*_dafny.TraitID {
  8147  	return [](*_dafny.TraitID){}
  8148  }
  8149  
  8150  var _ _dafny.TraitOffspring = MultiThreadedCache{}
  8151  
  8152  // End of datatype MultiThreadedCache
  8153  
  8154  // Definition of datatype NoCache
  8155  type NoCache struct {
  8156  	Data_NoCache_
  8157  }
  8158  
  8159  func (_this NoCache) Get_() Data_NoCache_ {
  8160  	return _this.Data_NoCache_
  8161  }
  8162  
  8163  type Data_NoCache_ interface {
  8164  	isNoCache()
  8165  }
  8166  
  8167  type CompanionStruct_NoCache_ struct {
  8168  }
  8169  
  8170  var Companion_NoCache_ = CompanionStruct_NoCache_{}
  8171  
  8172  type NoCache_NoCache struct {
  8173  }
  8174  
  8175  func (NoCache_NoCache) isNoCache() {}
  8176  
  8177  func (CompanionStruct_NoCache_) Create_NoCache_() NoCache {
  8178  	return NoCache{NoCache_NoCache{}}
  8179  }
  8180  
  8181  func (_this NoCache) Is_NoCache() bool {
  8182  	_, ok := _this.Get_().(NoCache_NoCache)
  8183  	return ok
  8184  }
  8185  
  8186  func (CompanionStruct_NoCache_) Default() NoCache {
  8187  	return Companion_NoCache_.Create_NoCache_()
  8188  }
  8189  
  8190  func (_ CompanionStruct_NoCache_) AllSingletonConstructors() _dafny.Iterator {
  8191  	i := -1
  8192  	return func() (interface{}, bool) {
  8193  		i++
  8194  		switch i {
  8195  		case 0:
  8196  			return Companion_NoCache_.Create_NoCache_(), true
  8197  		default:
  8198  			return NoCache{}, false
  8199  		}
  8200  	}
  8201  }
  8202  
  8203  func (_this NoCache) String() string {
  8204  	switch _this.Get_().(type) {
  8205  	case nil:
  8206  		return "null"
  8207  	case NoCache_NoCache:
  8208  		{
  8209  			return "AwsCryptographyMaterialProvidersTypes.NoCache.NoCache"
  8210  		}
  8211  	default:
  8212  		{
  8213  			return "<unexpected>"
  8214  		}
  8215  	}
  8216  }
  8217  
  8218  func (_this NoCache) Equals(other NoCache) bool {
  8219  	switch _this.Get_().(type) {
  8220  	case NoCache_NoCache:
  8221  		{
  8222  			_, ok := other.Get_().(NoCache_NoCache)
  8223  			return ok
  8224  		}
  8225  	default:
  8226  		{
  8227  			return false // unexpected
  8228  		}
  8229  	}
  8230  }
  8231  
  8232  func (_this NoCache) EqualsGeneric(other interface{}) bool {
  8233  	typed, ok := other.(NoCache)
  8234  	return ok && _this.Equals(typed)
  8235  }
  8236  
  8237  func Type_NoCache_() _dafny.TypeDescriptor {
  8238  	return type_NoCache_{}
  8239  }
  8240  
  8241  type type_NoCache_ struct {
  8242  }
  8243  
  8244  func (_this type_NoCache_) Default() interface{} {
  8245  	return Companion_NoCache_.Default()
  8246  }
  8247  
  8248  func (_this type_NoCache_) String() string {
  8249  	return "AwsCryptographyMaterialProvidersTypes.NoCache"
  8250  }
  8251  func (_this NoCache) ParentTraits_() []*_dafny.TraitID {
  8252  	return [](*_dafny.TraitID){}
  8253  }
  8254  
  8255  var _ _dafny.TraitOffspring = NoCache{}
  8256  
  8257  // End of datatype NoCache
  8258  
  8259  // Definition of datatype None
  8260  type None struct {
  8261  	Data_None_
  8262  }
  8263  
  8264  func (_this None) Get_() Data_None_ {
  8265  	return _this.Data_None_
  8266  }
  8267  
  8268  type Data_None_ interface {
  8269  	isNone()
  8270  }
  8271  
  8272  type CompanionStruct_None_ struct {
  8273  }
  8274  
  8275  var Companion_None_ = CompanionStruct_None_{}
  8276  
  8277  type None_None struct {
  8278  }
  8279  
  8280  func (None_None) isNone() {}
  8281  
  8282  func (CompanionStruct_None_) Create_None_() None {
  8283  	return None{None_None{}}
  8284  }
  8285  
  8286  func (_this None) Is_None() bool {
  8287  	_, ok := _this.Get_().(None_None)
  8288  	return ok
  8289  }
  8290  
  8291  func (CompanionStruct_None_) Default() None {
  8292  	return Companion_None_.Create_None_()
  8293  }
  8294  
  8295  func (_ CompanionStruct_None_) AllSingletonConstructors() _dafny.Iterator {
  8296  	i := -1
  8297  	return func() (interface{}, bool) {
  8298  		i++
  8299  		switch i {
  8300  		case 0:
  8301  			return Companion_None_.Create_None_(), true
  8302  		default:
  8303  			return None{}, false
  8304  		}
  8305  	}
  8306  }
  8307  
  8308  func (_this None) String() string {
  8309  	switch _this.Get_().(type) {
  8310  	case nil:
  8311  		return "null"
  8312  	case None_None:
  8313  		{
  8314  			return "AwsCryptographyMaterialProvidersTypes.None.None"
  8315  		}
  8316  	default:
  8317  		{
  8318  			return "<unexpected>"
  8319  		}
  8320  	}
  8321  }
  8322  
  8323  func (_this None) Equals(other None) bool {
  8324  	switch _this.Get_().(type) {
  8325  	case None_None:
  8326  		{
  8327  			_, ok := other.Get_().(None_None)
  8328  			return ok
  8329  		}
  8330  	default:
  8331  		{
  8332  			return false // unexpected
  8333  		}
  8334  	}
  8335  }
  8336  
  8337  func (_this None) EqualsGeneric(other interface{}) bool {
  8338  	typed, ok := other.(None)
  8339  	return ok && _this.Equals(typed)
  8340  }
  8341  
  8342  func Type_None_() _dafny.TypeDescriptor {
  8343  	return type_None_{}
  8344  }
  8345  
  8346  type type_None_ struct {
  8347  }
  8348  
  8349  func (_this type_None_) Default() interface{} {
  8350  	return Companion_None_.Default()
  8351  }
  8352  
  8353  func (_this type_None_) String() string {
  8354  	return "AwsCryptographyMaterialProvidersTypes.None"
  8355  }
  8356  func (_this None) ParentTraits_() []*_dafny.TraitID {
  8357  	return [](*_dafny.TraitID){}
  8358  }
  8359  
  8360  var _ _dafny.TraitOffspring = None{}
  8361  
  8362  // End of datatype None
  8363  
  8364  // Definition of datatype OnDecryptInput
  8365  type OnDecryptInput struct {
  8366  	Data_OnDecryptInput_
  8367  }
  8368  
  8369  func (_this OnDecryptInput) Get_() Data_OnDecryptInput_ {
  8370  	return _this.Data_OnDecryptInput_
  8371  }
  8372  
  8373  type Data_OnDecryptInput_ interface {
  8374  	isOnDecryptInput()
  8375  }
  8376  
  8377  type CompanionStruct_OnDecryptInput_ struct {
  8378  }
  8379  
  8380  var Companion_OnDecryptInput_ = CompanionStruct_OnDecryptInput_{}
  8381  
  8382  type OnDecryptInput_OnDecryptInput struct {
  8383  	Materials         DecryptionMaterials
  8384  	EncryptedDataKeys _dafny.Sequence
  8385  }
  8386  
  8387  func (OnDecryptInput_OnDecryptInput) isOnDecryptInput() {}
  8388  
  8389  func (CompanionStruct_OnDecryptInput_) Create_OnDecryptInput_(Materials DecryptionMaterials, EncryptedDataKeys _dafny.Sequence) OnDecryptInput {
  8390  	return OnDecryptInput{OnDecryptInput_OnDecryptInput{Materials, EncryptedDataKeys}}
  8391  }
  8392  
  8393  func (_this OnDecryptInput) Is_OnDecryptInput() bool {
  8394  	_, ok := _this.Get_().(OnDecryptInput_OnDecryptInput)
  8395  	return ok
  8396  }
  8397  
  8398  func (CompanionStruct_OnDecryptInput_) Default() OnDecryptInput {
  8399  	return Companion_OnDecryptInput_.Create_OnDecryptInput_(Companion_DecryptionMaterials_.Default(), _dafny.EmptySeq)
  8400  }
  8401  
  8402  func (_this OnDecryptInput) Dtor_materials() DecryptionMaterials {
  8403  	return _this.Get_().(OnDecryptInput_OnDecryptInput).Materials
  8404  }
  8405  
  8406  func (_this OnDecryptInput) Dtor_encryptedDataKeys() _dafny.Sequence {
  8407  	return _this.Get_().(OnDecryptInput_OnDecryptInput).EncryptedDataKeys
  8408  }
  8409  
  8410  func (_this OnDecryptInput) String() string {
  8411  	switch data := _this.Get_().(type) {
  8412  	case nil:
  8413  		return "null"
  8414  	case OnDecryptInput_OnDecryptInput:
  8415  		{
  8416  			return "AwsCryptographyMaterialProvidersTypes.OnDecryptInput.OnDecryptInput" + "(" + _dafny.String(data.Materials) + ", " + _dafny.String(data.EncryptedDataKeys) + ")"
  8417  		}
  8418  	default:
  8419  		{
  8420  			return "<unexpected>"
  8421  		}
  8422  	}
  8423  }
  8424  
  8425  func (_this OnDecryptInput) Equals(other OnDecryptInput) bool {
  8426  	switch data1 := _this.Get_().(type) {
  8427  	case OnDecryptInput_OnDecryptInput:
  8428  		{
  8429  			data2, ok := other.Get_().(OnDecryptInput_OnDecryptInput)
  8430  			return ok && data1.Materials.Equals(data2.Materials) && data1.EncryptedDataKeys.Equals(data2.EncryptedDataKeys)
  8431  		}
  8432  	default:
  8433  		{
  8434  			return false // unexpected
  8435  		}
  8436  	}
  8437  }
  8438  
  8439  func (_this OnDecryptInput) EqualsGeneric(other interface{}) bool {
  8440  	typed, ok := other.(OnDecryptInput)
  8441  	return ok && _this.Equals(typed)
  8442  }
  8443  
  8444  func Type_OnDecryptInput_() _dafny.TypeDescriptor {
  8445  	return type_OnDecryptInput_{}
  8446  }
  8447  
  8448  type type_OnDecryptInput_ struct {
  8449  }
  8450  
  8451  func (_this type_OnDecryptInput_) Default() interface{} {
  8452  	return Companion_OnDecryptInput_.Default()
  8453  }
  8454  
  8455  func (_this type_OnDecryptInput_) String() string {
  8456  	return "AwsCryptographyMaterialProvidersTypes.OnDecryptInput"
  8457  }
  8458  func (_this OnDecryptInput) ParentTraits_() []*_dafny.TraitID {
  8459  	return [](*_dafny.TraitID){}
  8460  }
  8461  
  8462  var _ _dafny.TraitOffspring = OnDecryptInput{}
  8463  
  8464  // End of datatype OnDecryptInput
  8465  
  8466  // Definition of datatype OnDecryptOutput
  8467  type OnDecryptOutput struct {
  8468  	Data_OnDecryptOutput_
  8469  }
  8470  
  8471  func (_this OnDecryptOutput) Get_() Data_OnDecryptOutput_ {
  8472  	return _this.Data_OnDecryptOutput_
  8473  }
  8474  
  8475  type Data_OnDecryptOutput_ interface {
  8476  	isOnDecryptOutput()
  8477  }
  8478  
  8479  type CompanionStruct_OnDecryptOutput_ struct {
  8480  }
  8481  
  8482  var Companion_OnDecryptOutput_ = CompanionStruct_OnDecryptOutput_{}
  8483  
  8484  type OnDecryptOutput_OnDecryptOutput struct {
  8485  	Materials DecryptionMaterials
  8486  }
  8487  
  8488  func (OnDecryptOutput_OnDecryptOutput) isOnDecryptOutput() {}
  8489  
  8490  func (CompanionStruct_OnDecryptOutput_) Create_OnDecryptOutput_(Materials DecryptionMaterials) OnDecryptOutput {
  8491  	return OnDecryptOutput{OnDecryptOutput_OnDecryptOutput{Materials}}
  8492  }
  8493  
  8494  func (_this OnDecryptOutput) Is_OnDecryptOutput() bool {
  8495  	_, ok := _this.Get_().(OnDecryptOutput_OnDecryptOutput)
  8496  	return ok
  8497  }
  8498  
  8499  func (CompanionStruct_OnDecryptOutput_) Default() OnDecryptOutput {
  8500  	return Companion_OnDecryptOutput_.Create_OnDecryptOutput_(Companion_DecryptionMaterials_.Default())
  8501  }
  8502  
  8503  func (_this OnDecryptOutput) Dtor_materials() DecryptionMaterials {
  8504  	return _this.Get_().(OnDecryptOutput_OnDecryptOutput).Materials
  8505  }
  8506  
  8507  func (_this OnDecryptOutput) String() string {
  8508  	switch data := _this.Get_().(type) {
  8509  	case nil:
  8510  		return "null"
  8511  	case OnDecryptOutput_OnDecryptOutput:
  8512  		{
  8513  			return "AwsCryptographyMaterialProvidersTypes.OnDecryptOutput.OnDecryptOutput" + "(" + _dafny.String(data.Materials) + ")"
  8514  		}
  8515  	default:
  8516  		{
  8517  			return "<unexpected>"
  8518  		}
  8519  	}
  8520  }
  8521  
  8522  func (_this OnDecryptOutput) Equals(other OnDecryptOutput) bool {
  8523  	switch data1 := _this.Get_().(type) {
  8524  	case OnDecryptOutput_OnDecryptOutput:
  8525  		{
  8526  			data2, ok := other.Get_().(OnDecryptOutput_OnDecryptOutput)
  8527  			return ok && data1.Materials.Equals(data2.Materials)
  8528  		}
  8529  	default:
  8530  		{
  8531  			return false // unexpected
  8532  		}
  8533  	}
  8534  }
  8535  
  8536  func (_this OnDecryptOutput) EqualsGeneric(other interface{}) bool {
  8537  	typed, ok := other.(OnDecryptOutput)
  8538  	return ok && _this.Equals(typed)
  8539  }
  8540  
  8541  func Type_OnDecryptOutput_() _dafny.TypeDescriptor {
  8542  	return type_OnDecryptOutput_{}
  8543  }
  8544  
  8545  type type_OnDecryptOutput_ struct {
  8546  }
  8547  
  8548  func (_this type_OnDecryptOutput_) Default() interface{} {
  8549  	return Companion_OnDecryptOutput_.Default()
  8550  }
  8551  
  8552  func (_this type_OnDecryptOutput_) String() string {
  8553  	return "AwsCryptographyMaterialProvidersTypes.OnDecryptOutput"
  8554  }
  8555  func (_this OnDecryptOutput) ParentTraits_() []*_dafny.TraitID {
  8556  	return [](*_dafny.TraitID){}
  8557  }
  8558  
  8559  var _ _dafny.TraitOffspring = OnDecryptOutput{}
  8560  
  8561  // End of datatype OnDecryptOutput
  8562  
  8563  // Definition of datatype OnEncryptInput
  8564  type OnEncryptInput struct {
  8565  	Data_OnEncryptInput_
  8566  }
  8567  
  8568  func (_this OnEncryptInput) Get_() Data_OnEncryptInput_ {
  8569  	return _this.Data_OnEncryptInput_
  8570  }
  8571  
  8572  type Data_OnEncryptInput_ interface {
  8573  	isOnEncryptInput()
  8574  }
  8575  
  8576  type CompanionStruct_OnEncryptInput_ struct {
  8577  }
  8578  
  8579  var Companion_OnEncryptInput_ = CompanionStruct_OnEncryptInput_{}
  8580  
  8581  type OnEncryptInput_OnEncryptInput struct {
  8582  	Materials EncryptionMaterials
  8583  }
  8584  
  8585  func (OnEncryptInput_OnEncryptInput) isOnEncryptInput() {}
  8586  
  8587  func (CompanionStruct_OnEncryptInput_) Create_OnEncryptInput_(Materials EncryptionMaterials) OnEncryptInput {
  8588  	return OnEncryptInput{OnEncryptInput_OnEncryptInput{Materials}}
  8589  }
  8590  
  8591  func (_this OnEncryptInput) Is_OnEncryptInput() bool {
  8592  	_, ok := _this.Get_().(OnEncryptInput_OnEncryptInput)
  8593  	return ok
  8594  }
  8595  
  8596  func (CompanionStruct_OnEncryptInput_) Default() OnEncryptInput {
  8597  	return Companion_OnEncryptInput_.Create_OnEncryptInput_(Companion_EncryptionMaterials_.Default())
  8598  }
  8599  
  8600  func (_this OnEncryptInput) Dtor_materials() EncryptionMaterials {
  8601  	return _this.Get_().(OnEncryptInput_OnEncryptInput).Materials
  8602  }
  8603  
  8604  func (_this OnEncryptInput) String() string {
  8605  	switch data := _this.Get_().(type) {
  8606  	case nil:
  8607  		return "null"
  8608  	case OnEncryptInput_OnEncryptInput:
  8609  		{
  8610  			return "AwsCryptographyMaterialProvidersTypes.OnEncryptInput.OnEncryptInput" + "(" + _dafny.String(data.Materials) + ")"
  8611  		}
  8612  	default:
  8613  		{
  8614  			return "<unexpected>"
  8615  		}
  8616  	}
  8617  }
  8618  
  8619  func (_this OnEncryptInput) Equals(other OnEncryptInput) bool {
  8620  	switch data1 := _this.Get_().(type) {
  8621  	case OnEncryptInput_OnEncryptInput:
  8622  		{
  8623  			data2, ok := other.Get_().(OnEncryptInput_OnEncryptInput)
  8624  			return ok && data1.Materials.Equals(data2.Materials)
  8625  		}
  8626  	default:
  8627  		{
  8628  			return false // unexpected
  8629  		}
  8630  	}
  8631  }
  8632  
  8633  func (_this OnEncryptInput) EqualsGeneric(other interface{}) bool {
  8634  	typed, ok := other.(OnEncryptInput)
  8635  	return ok && _this.Equals(typed)
  8636  }
  8637  
  8638  func Type_OnEncryptInput_() _dafny.TypeDescriptor {
  8639  	return type_OnEncryptInput_{}
  8640  }
  8641  
  8642  type type_OnEncryptInput_ struct {
  8643  }
  8644  
  8645  func (_this type_OnEncryptInput_) Default() interface{} {
  8646  	return Companion_OnEncryptInput_.Default()
  8647  }
  8648  
  8649  func (_this type_OnEncryptInput_) String() string {
  8650  	return "AwsCryptographyMaterialProvidersTypes.OnEncryptInput"
  8651  }
  8652  func (_this OnEncryptInput) ParentTraits_() []*_dafny.TraitID {
  8653  	return [](*_dafny.TraitID){}
  8654  }
  8655  
  8656  var _ _dafny.TraitOffspring = OnEncryptInput{}
  8657  
  8658  // End of datatype OnEncryptInput
  8659  
  8660  // Definition of datatype OnEncryptOutput
  8661  type OnEncryptOutput struct {
  8662  	Data_OnEncryptOutput_
  8663  }
  8664  
  8665  func (_this OnEncryptOutput) Get_() Data_OnEncryptOutput_ {
  8666  	return _this.Data_OnEncryptOutput_
  8667  }
  8668  
  8669  type Data_OnEncryptOutput_ interface {
  8670  	isOnEncryptOutput()
  8671  }
  8672  
  8673  type CompanionStruct_OnEncryptOutput_ struct {
  8674  }
  8675  
  8676  var Companion_OnEncryptOutput_ = CompanionStruct_OnEncryptOutput_{}
  8677  
  8678  type OnEncryptOutput_OnEncryptOutput struct {
  8679  	Materials EncryptionMaterials
  8680  }
  8681  
  8682  func (OnEncryptOutput_OnEncryptOutput) isOnEncryptOutput() {}
  8683  
  8684  func (CompanionStruct_OnEncryptOutput_) Create_OnEncryptOutput_(Materials EncryptionMaterials) OnEncryptOutput {
  8685  	return OnEncryptOutput{OnEncryptOutput_OnEncryptOutput{Materials}}
  8686  }
  8687  
  8688  func (_this OnEncryptOutput) Is_OnEncryptOutput() bool {
  8689  	_, ok := _this.Get_().(OnEncryptOutput_OnEncryptOutput)
  8690  	return ok
  8691  }
  8692  
  8693  func (CompanionStruct_OnEncryptOutput_) Default() OnEncryptOutput {
  8694  	return Companion_OnEncryptOutput_.Create_OnEncryptOutput_(Companion_EncryptionMaterials_.Default())
  8695  }
  8696  
  8697  func (_this OnEncryptOutput) Dtor_materials() EncryptionMaterials {
  8698  	return _this.Get_().(OnEncryptOutput_OnEncryptOutput).Materials
  8699  }
  8700  
  8701  func (_this OnEncryptOutput) String() string {
  8702  	switch data := _this.Get_().(type) {
  8703  	case nil:
  8704  		return "null"
  8705  	case OnEncryptOutput_OnEncryptOutput:
  8706  		{
  8707  			return "AwsCryptographyMaterialProvidersTypes.OnEncryptOutput.OnEncryptOutput" + "(" + _dafny.String(data.Materials) + ")"
  8708  		}
  8709  	default:
  8710  		{
  8711  			return "<unexpected>"
  8712  		}
  8713  	}
  8714  }
  8715  
  8716  func (_this OnEncryptOutput) Equals(other OnEncryptOutput) bool {
  8717  	switch data1 := _this.Get_().(type) {
  8718  	case OnEncryptOutput_OnEncryptOutput:
  8719  		{
  8720  			data2, ok := other.Get_().(OnEncryptOutput_OnEncryptOutput)
  8721  			return ok && data1.Materials.Equals(data2.Materials)
  8722  		}
  8723  	default:
  8724  		{
  8725  			return false // unexpected
  8726  		}
  8727  	}
  8728  }
  8729  
  8730  func (_this OnEncryptOutput) EqualsGeneric(other interface{}) bool {
  8731  	typed, ok := other.(OnEncryptOutput)
  8732  	return ok && _this.Equals(typed)
  8733  }
  8734  
  8735  func Type_OnEncryptOutput_() _dafny.TypeDescriptor {
  8736  	return type_OnEncryptOutput_{}
  8737  }
  8738  
  8739  type type_OnEncryptOutput_ struct {
  8740  }
  8741  
  8742  func (_this type_OnEncryptOutput_) Default() interface{} {
  8743  	return Companion_OnEncryptOutput_.Default()
  8744  }
  8745  
  8746  func (_this type_OnEncryptOutput_) String() string {
  8747  	return "AwsCryptographyMaterialProvidersTypes.OnEncryptOutput"
  8748  }
  8749  func (_this OnEncryptOutput) ParentTraits_() []*_dafny.TraitID {
  8750  	return [](*_dafny.TraitID){}
  8751  }
  8752  
  8753  var _ _dafny.TraitOffspring = OnEncryptOutput{}
  8754  
  8755  // End of datatype OnEncryptOutput
  8756  
  8757  // Definition of datatype PaddingScheme
  8758  type PaddingScheme struct {
  8759  	Data_PaddingScheme_
  8760  }
  8761  
  8762  func (_this PaddingScheme) Get_() Data_PaddingScheme_ {
  8763  	return _this.Data_PaddingScheme_
  8764  }
  8765  
  8766  type Data_PaddingScheme_ interface {
  8767  	isPaddingScheme()
  8768  }
  8769  
  8770  type CompanionStruct_PaddingScheme_ struct {
  8771  }
  8772  
  8773  var Companion_PaddingScheme_ = CompanionStruct_PaddingScheme_{}
  8774  
  8775  type PaddingScheme_PKCS1 struct {
  8776  }
  8777  
  8778  func (PaddingScheme_PKCS1) isPaddingScheme() {}
  8779  
  8780  func (CompanionStruct_PaddingScheme_) Create_PKCS1_() PaddingScheme {
  8781  	return PaddingScheme{PaddingScheme_PKCS1{}}
  8782  }
  8783  
  8784  func (_this PaddingScheme) Is_PKCS1() bool {
  8785  	_, ok := _this.Get_().(PaddingScheme_PKCS1)
  8786  	return ok
  8787  }
  8788  
  8789  type PaddingScheme_OAEP__SHA1__MGF1 struct {
  8790  }
  8791  
  8792  func (PaddingScheme_OAEP__SHA1__MGF1) isPaddingScheme() {}
  8793  
  8794  func (CompanionStruct_PaddingScheme_) Create_OAEP__SHA1__MGF1_() PaddingScheme {
  8795  	return PaddingScheme{PaddingScheme_OAEP__SHA1__MGF1{}}
  8796  }
  8797  
  8798  func (_this PaddingScheme) Is_OAEP__SHA1__MGF1() bool {
  8799  	_, ok := _this.Get_().(PaddingScheme_OAEP__SHA1__MGF1)
  8800  	return ok
  8801  }
  8802  
  8803  type PaddingScheme_OAEP__SHA256__MGF1 struct {
  8804  }
  8805  
  8806  func (PaddingScheme_OAEP__SHA256__MGF1) isPaddingScheme() {}
  8807  
  8808  func (CompanionStruct_PaddingScheme_) Create_OAEP__SHA256__MGF1_() PaddingScheme {
  8809  	return PaddingScheme{PaddingScheme_OAEP__SHA256__MGF1{}}
  8810  }
  8811  
  8812  func (_this PaddingScheme) Is_OAEP__SHA256__MGF1() bool {
  8813  	_, ok := _this.Get_().(PaddingScheme_OAEP__SHA256__MGF1)
  8814  	return ok
  8815  }
  8816  
  8817  type PaddingScheme_OAEP__SHA384__MGF1 struct {
  8818  }
  8819  
  8820  func (PaddingScheme_OAEP__SHA384__MGF1) isPaddingScheme() {}
  8821  
  8822  func (CompanionStruct_PaddingScheme_) Create_OAEP__SHA384__MGF1_() PaddingScheme {
  8823  	return PaddingScheme{PaddingScheme_OAEP__SHA384__MGF1{}}
  8824  }
  8825  
  8826  func (_this PaddingScheme) Is_OAEP__SHA384__MGF1() bool {
  8827  	_, ok := _this.Get_().(PaddingScheme_OAEP__SHA384__MGF1)
  8828  	return ok
  8829  }
  8830  
  8831  type PaddingScheme_OAEP__SHA512__MGF1 struct {
  8832  }
  8833  
  8834  func (PaddingScheme_OAEP__SHA512__MGF1) isPaddingScheme() {}
  8835  
  8836  func (CompanionStruct_PaddingScheme_) Create_OAEP__SHA512__MGF1_() PaddingScheme {
  8837  	return PaddingScheme{PaddingScheme_OAEP__SHA512__MGF1{}}
  8838  }
  8839  
  8840  func (_this PaddingScheme) Is_OAEP__SHA512__MGF1() bool {
  8841  	_, ok := _this.Get_().(PaddingScheme_OAEP__SHA512__MGF1)
  8842  	return ok
  8843  }
  8844  
  8845  func (CompanionStruct_PaddingScheme_) Default() PaddingScheme {
  8846  	return Companion_PaddingScheme_.Create_PKCS1_()
  8847  }
  8848  
  8849  func (_ CompanionStruct_PaddingScheme_) AllSingletonConstructors() _dafny.Iterator {
  8850  	i := -1
  8851  	return func() (interface{}, bool) {
  8852  		i++
  8853  		switch i {
  8854  		case 0:
  8855  			return Companion_PaddingScheme_.Create_PKCS1_(), true
  8856  		case 1:
  8857  			return Companion_PaddingScheme_.Create_OAEP__SHA1__MGF1_(), true
  8858  		case 2:
  8859  			return Companion_PaddingScheme_.Create_OAEP__SHA256__MGF1_(), true
  8860  		case 3:
  8861  			return Companion_PaddingScheme_.Create_OAEP__SHA384__MGF1_(), true
  8862  		case 4:
  8863  			return Companion_PaddingScheme_.Create_OAEP__SHA512__MGF1_(), true
  8864  		default:
  8865  			return PaddingScheme{}, false
  8866  		}
  8867  	}
  8868  }
  8869  
  8870  func (_this PaddingScheme) String() string {
  8871  	switch _this.Get_().(type) {
  8872  	case nil:
  8873  		return "null"
  8874  	case PaddingScheme_PKCS1:
  8875  		{
  8876  			return "AwsCryptographyMaterialProvidersTypes.PaddingScheme.PKCS1"
  8877  		}
  8878  	case PaddingScheme_OAEP__SHA1__MGF1:
  8879  		{
  8880  			return "AwsCryptographyMaterialProvidersTypes.PaddingScheme.OAEP_SHA1_MGF1"
  8881  		}
  8882  	case PaddingScheme_OAEP__SHA256__MGF1:
  8883  		{
  8884  			return "AwsCryptographyMaterialProvidersTypes.PaddingScheme.OAEP_SHA256_MGF1"
  8885  		}
  8886  	case PaddingScheme_OAEP__SHA384__MGF1:
  8887  		{
  8888  			return "AwsCryptographyMaterialProvidersTypes.PaddingScheme.OAEP_SHA384_MGF1"
  8889  		}
  8890  	case PaddingScheme_OAEP__SHA512__MGF1:
  8891  		{
  8892  			return "AwsCryptographyMaterialProvidersTypes.PaddingScheme.OAEP_SHA512_MGF1"
  8893  		}
  8894  	default:
  8895  		{
  8896  			return "<unexpected>"
  8897  		}
  8898  	}
  8899  }
  8900  
  8901  func (_this PaddingScheme) Equals(other PaddingScheme) bool {
  8902  	switch _this.Get_().(type) {
  8903  	case PaddingScheme_PKCS1:
  8904  		{
  8905  			_, ok := other.Get_().(PaddingScheme_PKCS1)
  8906  			return ok
  8907  		}
  8908  	case PaddingScheme_OAEP__SHA1__MGF1:
  8909  		{
  8910  			_, ok := other.Get_().(PaddingScheme_OAEP__SHA1__MGF1)
  8911  			return ok
  8912  		}
  8913  	case PaddingScheme_OAEP__SHA256__MGF1:
  8914  		{
  8915  			_, ok := other.Get_().(PaddingScheme_OAEP__SHA256__MGF1)
  8916  			return ok
  8917  		}
  8918  	case PaddingScheme_OAEP__SHA384__MGF1:
  8919  		{
  8920  			_, ok := other.Get_().(PaddingScheme_OAEP__SHA384__MGF1)
  8921  			return ok
  8922  		}
  8923  	case PaddingScheme_OAEP__SHA512__MGF1:
  8924  		{
  8925  			_, ok := other.Get_().(PaddingScheme_OAEP__SHA512__MGF1)
  8926  			return ok
  8927  		}
  8928  	default:
  8929  		{
  8930  			return false // unexpected
  8931  		}
  8932  	}
  8933  }
  8934  
  8935  func (_this PaddingScheme) EqualsGeneric(other interface{}) bool {
  8936  	typed, ok := other.(PaddingScheme)
  8937  	return ok && _this.Equals(typed)
  8938  }
  8939  
  8940  func Type_PaddingScheme_() _dafny.TypeDescriptor {
  8941  	return type_PaddingScheme_{}
  8942  }
  8943  
  8944  type type_PaddingScheme_ struct {
  8945  }
  8946  
  8947  func (_this type_PaddingScheme_) Default() interface{} {
  8948  	return Companion_PaddingScheme_.Default()
  8949  }
  8950  
  8951  func (_this type_PaddingScheme_) String() string {
  8952  	return "AwsCryptographyMaterialProvidersTypes.PaddingScheme"
  8953  }
  8954  func (_this PaddingScheme) ParentTraits_() []*_dafny.TraitID {
  8955  	return [](*_dafny.TraitID){}
  8956  }
  8957  
  8958  var _ _dafny.TraitOffspring = PaddingScheme{}
  8959  
  8960  // End of datatype PaddingScheme
  8961  
  8962  // Definition of class PositiveInteger
  8963  type PositiveInteger struct {
  8964  }
  8965  
  8966  func New_PositiveInteger_() *PositiveInteger {
  8967  	_this := PositiveInteger{}
  8968  
  8969  	return &_this
  8970  }
  8971  
  8972  type CompanionStruct_PositiveInteger_ struct {
  8973  }
  8974  
  8975  var Companion_PositiveInteger_ = CompanionStruct_PositiveInteger_{}
  8976  
  8977  func (*PositiveInteger) String() string {
  8978  	return "AwsCryptographyMaterialProvidersTypes.PositiveInteger"
  8979  }
  8980  
  8981  // End of class PositiveInteger
  8982  
  8983  func Type_PositiveInteger_() _dafny.TypeDescriptor {
  8984  	return type_PositiveInteger_{}
  8985  }
  8986  
  8987  type type_PositiveInteger_ struct {
  8988  }
  8989  
  8990  func (_this type_PositiveInteger_) Default() interface{} {
  8991  	return int32(0)
  8992  }
  8993  
  8994  func (_this type_PositiveInteger_) String() string {
  8995  	return "AwsCryptographyMaterialProvidersTypes.PositiveInteger"
  8996  }
  8997  func (_this *CompanionStruct_PositiveInteger_) Is_(__source int32) bool {
  8998  	var _0_x int32 = (__source)
  8999  	_ = _0_x
  9000  	if true {
  9001  		return Companion_Default___.IsValid__PositiveInteger(_0_x)
  9002  	}
  9003  	return false
  9004  }
  9005  
  9006  // Definition of class PositiveLong
  9007  type PositiveLong struct {
  9008  }
  9009  
  9010  func New_PositiveLong_() *PositiveLong {
  9011  	_this := PositiveLong{}
  9012  
  9013  	return &_this
  9014  }
  9015  
  9016  type CompanionStruct_PositiveLong_ struct {
  9017  }
  9018  
  9019  var Companion_PositiveLong_ = CompanionStruct_PositiveLong_{}
  9020  
  9021  func (*PositiveLong) String() string {
  9022  	return "AwsCryptographyMaterialProvidersTypes.PositiveLong"
  9023  }
  9024  
  9025  // End of class PositiveLong
  9026  
  9027  func Type_PositiveLong_() _dafny.TypeDescriptor {
  9028  	return type_PositiveLong_{}
  9029  }
  9030  
  9031  type type_PositiveLong_ struct {
  9032  }
  9033  
  9034  func (_this type_PositiveLong_) Default() interface{} {
  9035  	return int64(0)
  9036  }
  9037  
  9038  func (_this type_PositiveLong_) String() string {
  9039  	return "AwsCryptographyMaterialProvidersTypes.PositiveLong"
  9040  }
  9041  func (_this *CompanionStruct_PositiveLong_) Is_(__source int64) bool {
  9042  	var _1_x int64 = (__source)
  9043  	_ = _1_x
  9044  	if true {
  9045  		return Companion_Default___.IsValid__PositiveLong(_1_x)
  9046  	}
  9047  	return false
  9048  }
  9049  
  9050  // Definition of datatype PublicKeyDiscoveryInput
  9051  type PublicKeyDiscoveryInput struct {
  9052  	Data_PublicKeyDiscoveryInput_
  9053  }
  9054  
  9055  func (_this PublicKeyDiscoveryInput) Get_() Data_PublicKeyDiscoveryInput_ {
  9056  	return _this.Data_PublicKeyDiscoveryInput_
  9057  }
  9058  
  9059  type Data_PublicKeyDiscoveryInput_ interface {
  9060  	isPublicKeyDiscoveryInput()
  9061  }
  9062  
  9063  type CompanionStruct_PublicKeyDiscoveryInput_ struct {
  9064  }
  9065  
  9066  var Companion_PublicKeyDiscoveryInput_ = CompanionStruct_PublicKeyDiscoveryInput_{}
  9067  
  9068  type PublicKeyDiscoveryInput_PublicKeyDiscoveryInput struct {
  9069  	RecipientStaticPrivateKey _dafny.Sequence
  9070  }
  9071  
  9072  func (PublicKeyDiscoveryInput_PublicKeyDiscoveryInput) isPublicKeyDiscoveryInput() {}
  9073  
  9074  func (CompanionStruct_PublicKeyDiscoveryInput_) Create_PublicKeyDiscoveryInput_(RecipientStaticPrivateKey _dafny.Sequence) PublicKeyDiscoveryInput {
  9075  	return PublicKeyDiscoveryInput{PublicKeyDiscoveryInput_PublicKeyDiscoveryInput{RecipientStaticPrivateKey}}
  9076  }
  9077  
  9078  func (_this PublicKeyDiscoveryInput) Is_PublicKeyDiscoveryInput() bool {
  9079  	_, ok := _this.Get_().(PublicKeyDiscoveryInput_PublicKeyDiscoveryInput)
  9080  	return ok
  9081  }
  9082  
  9083  func (CompanionStruct_PublicKeyDiscoveryInput_) Default() PublicKeyDiscoveryInput {
  9084  	return Companion_PublicKeyDiscoveryInput_.Create_PublicKeyDiscoveryInput_(_dafny.EmptySeq)
  9085  }
  9086  
  9087  func (_this PublicKeyDiscoveryInput) Dtor_recipientStaticPrivateKey() _dafny.Sequence {
  9088  	return _this.Get_().(PublicKeyDiscoveryInput_PublicKeyDiscoveryInput).RecipientStaticPrivateKey
  9089  }
  9090  
  9091  func (_this PublicKeyDiscoveryInput) String() string {
  9092  	switch data := _this.Get_().(type) {
  9093  	case nil:
  9094  		return "null"
  9095  	case PublicKeyDiscoveryInput_PublicKeyDiscoveryInput:
  9096  		{
  9097  			return "AwsCryptographyMaterialProvidersTypes.PublicKeyDiscoveryInput.PublicKeyDiscoveryInput" + "(" + _dafny.String(data.RecipientStaticPrivateKey) + ")"
  9098  		}
  9099  	default:
  9100  		{
  9101  			return "<unexpected>"
  9102  		}
  9103  	}
  9104  }
  9105  
  9106  func (_this PublicKeyDiscoveryInput) Equals(other PublicKeyDiscoveryInput) bool {
  9107  	switch data1 := _this.Get_().(type) {
  9108  	case PublicKeyDiscoveryInput_PublicKeyDiscoveryInput:
  9109  		{
  9110  			data2, ok := other.Get_().(PublicKeyDiscoveryInput_PublicKeyDiscoveryInput)
  9111  			return ok && data1.RecipientStaticPrivateKey.Equals(data2.RecipientStaticPrivateKey)
  9112  		}
  9113  	default:
  9114  		{
  9115  			return false // unexpected
  9116  		}
  9117  	}
  9118  }
  9119  
  9120  func (_this PublicKeyDiscoveryInput) EqualsGeneric(other interface{}) bool {
  9121  	typed, ok := other.(PublicKeyDiscoveryInput)
  9122  	return ok && _this.Equals(typed)
  9123  }
  9124  
  9125  func Type_PublicKeyDiscoveryInput_() _dafny.TypeDescriptor {
  9126  	return type_PublicKeyDiscoveryInput_{}
  9127  }
  9128  
  9129  type type_PublicKeyDiscoveryInput_ struct {
  9130  }
  9131  
  9132  func (_this type_PublicKeyDiscoveryInput_) Default() interface{} {
  9133  	return Companion_PublicKeyDiscoveryInput_.Default()
  9134  }
  9135  
  9136  func (_this type_PublicKeyDiscoveryInput_) String() string {
  9137  	return "AwsCryptographyMaterialProvidersTypes.PublicKeyDiscoveryInput"
  9138  }
  9139  func (_this PublicKeyDiscoveryInput) ParentTraits_() []*_dafny.TraitID {
  9140  	return [](*_dafny.TraitID){}
  9141  }
  9142  
  9143  var _ _dafny.TraitOffspring = PublicKeyDiscoveryInput{}
  9144  
  9145  // End of datatype PublicKeyDiscoveryInput
  9146  
  9147  // Definition of datatype PutCacheEntryInput
  9148  type PutCacheEntryInput struct {
  9149  	Data_PutCacheEntryInput_
  9150  }
  9151  
  9152  func (_this PutCacheEntryInput) Get_() Data_PutCacheEntryInput_ {
  9153  	return _this.Data_PutCacheEntryInput_
  9154  }
  9155  
  9156  type Data_PutCacheEntryInput_ interface {
  9157  	isPutCacheEntryInput()
  9158  }
  9159  
  9160  type CompanionStruct_PutCacheEntryInput_ struct {
  9161  }
  9162  
  9163  var Companion_PutCacheEntryInput_ = CompanionStruct_PutCacheEntryInput_{}
  9164  
  9165  type PutCacheEntryInput_PutCacheEntryInput struct {
  9166  	Identifier   _dafny.Sequence
  9167  	Materials    Materials
  9168  	CreationTime int64
  9169  	ExpiryTime   int64
  9170  	MessagesUsed m_Wrappers.Option
  9171  	BytesUsed    m_Wrappers.Option
  9172  }
  9173  
  9174  func (PutCacheEntryInput_PutCacheEntryInput) isPutCacheEntryInput() {}
  9175  
  9176  func (CompanionStruct_PutCacheEntryInput_) Create_PutCacheEntryInput_(Identifier _dafny.Sequence, Materials Materials, CreationTime int64, ExpiryTime int64, MessagesUsed m_Wrappers.Option, BytesUsed m_Wrappers.Option) PutCacheEntryInput {
  9177  	return PutCacheEntryInput{PutCacheEntryInput_PutCacheEntryInput{Identifier, Materials, CreationTime, ExpiryTime, MessagesUsed, BytesUsed}}
  9178  }
  9179  
  9180  func (_this PutCacheEntryInput) Is_PutCacheEntryInput() bool {
  9181  	_, ok := _this.Get_().(PutCacheEntryInput_PutCacheEntryInput)
  9182  	return ok
  9183  }
  9184  
  9185  func (CompanionStruct_PutCacheEntryInput_) Default() PutCacheEntryInput {
  9186  	return Companion_PutCacheEntryInput_.Create_PutCacheEntryInput_(_dafny.EmptySeq, Companion_Materials_.Default(), int64(0), int64(0), m_Wrappers.Companion_Option_.Default(), m_Wrappers.Companion_Option_.Default())
  9187  }
  9188  
  9189  func (_this PutCacheEntryInput) Dtor_identifier() _dafny.Sequence {
  9190  	return _this.Get_().(PutCacheEntryInput_PutCacheEntryInput).Identifier
  9191  }
  9192  
  9193  func (_this PutCacheEntryInput) Dtor_materials() Materials {
  9194  	return _this.Get_().(PutCacheEntryInput_PutCacheEntryInput).Materials
  9195  }
  9196  
  9197  func (_this PutCacheEntryInput) Dtor_creationTime() int64 {
  9198  	return _this.Get_().(PutCacheEntryInput_PutCacheEntryInput).CreationTime
  9199  }
  9200  
  9201  func (_this PutCacheEntryInput) Dtor_expiryTime() int64 {
  9202  	return _this.Get_().(PutCacheEntryInput_PutCacheEntryInput).ExpiryTime
  9203  }
  9204  
  9205  func (_this PutCacheEntryInput) Dtor_messagesUsed() m_Wrappers.Option {
  9206  	return _this.Get_().(PutCacheEntryInput_PutCacheEntryInput).MessagesUsed
  9207  }
  9208  
  9209  func (_this PutCacheEntryInput) Dtor_bytesUsed() m_Wrappers.Option {
  9210  	return _this.Get_().(PutCacheEntryInput_PutCacheEntryInput).BytesUsed
  9211  }
  9212  
  9213  func (_this PutCacheEntryInput) String() string {
  9214  	switch data := _this.Get_().(type) {
  9215  	case nil:
  9216  		return "null"
  9217  	case PutCacheEntryInput_PutCacheEntryInput:
  9218  		{
  9219  			return "AwsCryptographyMaterialProvidersTypes.PutCacheEntryInput.PutCacheEntryInput" + "(" + _dafny.String(data.Identifier) + ", " + _dafny.String(data.Materials) + ", " + _dafny.String(data.CreationTime) + ", " + _dafny.String(data.ExpiryTime) + ", " + _dafny.String(data.MessagesUsed) + ", " + _dafny.String(data.BytesUsed) + ")"
  9220  		}
  9221  	default:
  9222  		{
  9223  			return "<unexpected>"
  9224  		}
  9225  	}
  9226  }
  9227  
  9228  func (_this PutCacheEntryInput) Equals(other PutCacheEntryInput) bool {
  9229  	switch data1 := _this.Get_().(type) {
  9230  	case PutCacheEntryInput_PutCacheEntryInput:
  9231  		{
  9232  			data2, ok := other.Get_().(PutCacheEntryInput_PutCacheEntryInput)
  9233  			return ok && data1.Identifier.Equals(data2.Identifier) && data1.Materials.Equals(data2.Materials) && data1.CreationTime == data2.CreationTime && data1.ExpiryTime == data2.ExpiryTime && data1.MessagesUsed.Equals(data2.MessagesUsed) && data1.BytesUsed.Equals(data2.BytesUsed)
  9234  		}
  9235  	default:
  9236  		{
  9237  			return false // unexpected
  9238  		}
  9239  	}
  9240  }
  9241  
  9242  func (_this PutCacheEntryInput) EqualsGeneric(other interface{}) bool {
  9243  	typed, ok := other.(PutCacheEntryInput)
  9244  	return ok && _this.Equals(typed)
  9245  }
  9246  
  9247  func Type_PutCacheEntryInput_() _dafny.TypeDescriptor {
  9248  	return type_PutCacheEntryInput_{}
  9249  }
  9250  
  9251  type type_PutCacheEntryInput_ struct {
  9252  }
  9253  
  9254  func (_this type_PutCacheEntryInput_) Default() interface{} {
  9255  	return Companion_PutCacheEntryInput_.Default()
  9256  }
  9257  
  9258  func (_this type_PutCacheEntryInput_) String() string {
  9259  	return "AwsCryptographyMaterialProvidersTypes.PutCacheEntryInput"
  9260  }
  9261  func (_this PutCacheEntryInput) ParentTraits_() []*_dafny.TraitID {
  9262  	return [](*_dafny.TraitID){}
  9263  }
  9264  
  9265  var _ _dafny.TraitOffspring = PutCacheEntryInput{}
  9266  
  9267  // End of datatype PutCacheEntryInput
  9268  
  9269  // Definition of datatype RawEcdhStaticConfigurations
  9270  type RawEcdhStaticConfigurations struct {
  9271  	Data_RawEcdhStaticConfigurations_
  9272  }
  9273  
  9274  func (_this RawEcdhStaticConfigurations) Get_() Data_RawEcdhStaticConfigurations_ {
  9275  	return _this.Data_RawEcdhStaticConfigurations_
  9276  }
  9277  
  9278  type Data_RawEcdhStaticConfigurations_ interface {
  9279  	isRawEcdhStaticConfigurations()
  9280  }
  9281  
  9282  type CompanionStruct_RawEcdhStaticConfigurations_ struct {
  9283  }
  9284  
  9285  var Companion_RawEcdhStaticConfigurations_ = CompanionStruct_RawEcdhStaticConfigurations_{}
  9286  
  9287  type RawEcdhStaticConfigurations_PublicKeyDiscovery struct {
  9288  	PublicKeyDiscovery PublicKeyDiscoveryInput
  9289  }
  9290  
  9291  func (RawEcdhStaticConfigurations_PublicKeyDiscovery) isRawEcdhStaticConfigurations() {}
  9292  
  9293  func (CompanionStruct_RawEcdhStaticConfigurations_) Create_PublicKeyDiscovery_(PublicKeyDiscovery PublicKeyDiscoveryInput) RawEcdhStaticConfigurations {
  9294  	return RawEcdhStaticConfigurations{RawEcdhStaticConfigurations_PublicKeyDiscovery{PublicKeyDiscovery}}
  9295  }
  9296  
  9297  func (_this RawEcdhStaticConfigurations) Is_PublicKeyDiscovery() bool {
  9298  	_, ok := _this.Get_().(RawEcdhStaticConfigurations_PublicKeyDiscovery)
  9299  	return ok
  9300  }
  9301  
  9302  type RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey struct {
  9303  	RawPrivateKeyToStaticPublicKey RawPrivateKeyToStaticPublicKeyInput
  9304  }
  9305  
  9306  func (RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey) isRawEcdhStaticConfigurations() {}
  9307  
  9308  func (CompanionStruct_RawEcdhStaticConfigurations_) Create_RawPrivateKeyToStaticPublicKey_(RawPrivateKeyToStaticPublicKey RawPrivateKeyToStaticPublicKeyInput) RawEcdhStaticConfigurations {
  9309  	return RawEcdhStaticConfigurations{RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey{RawPrivateKeyToStaticPublicKey}}
  9310  }
  9311  
  9312  func (_this RawEcdhStaticConfigurations) Is_RawPrivateKeyToStaticPublicKey() bool {
  9313  	_, ok := _this.Get_().(RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey)
  9314  	return ok
  9315  }
  9316  
  9317  type RawEcdhStaticConfigurations_EphemeralPrivateKeyToStaticPublicKey struct {
  9318  	EphemeralPrivateKeyToStaticPublicKey EphemeralPrivateKeyToStaticPublicKeyInput
  9319  }
  9320  
  9321  func (RawEcdhStaticConfigurations_EphemeralPrivateKeyToStaticPublicKey) isRawEcdhStaticConfigurations() {
  9322  }
  9323  
  9324  func (CompanionStruct_RawEcdhStaticConfigurations_) Create_EphemeralPrivateKeyToStaticPublicKey_(EphemeralPrivateKeyToStaticPublicKey EphemeralPrivateKeyToStaticPublicKeyInput) RawEcdhStaticConfigurations {
  9325  	return RawEcdhStaticConfigurations{RawEcdhStaticConfigurations_EphemeralPrivateKeyToStaticPublicKey{EphemeralPrivateKeyToStaticPublicKey}}
  9326  }
  9327  
  9328  func (_this RawEcdhStaticConfigurations) Is_EphemeralPrivateKeyToStaticPublicKey() bool {
  9329  	_, ok := _this.Get_().(RawEcdhStaticConfigurations_EphemeralPrivateKeyToStaticPublicKey)
  9330  	return ok
  9331  }
  9332  
  9333  func (CompanionStruct_RawEcdhStaticConfigurations_) Default() RawEcdhStaticConfigurations {
  9334  	return Companion_RawEcdhStaticConfigurations_.Create_PublicKeyDiscovery_(Companion_PublicKeyDiscoveryInput_.Default())
  9335  }
  9336  
  9337  func (_this RawEcdhStaticConfigurations) Dtor_PublicKeyDiscovery() PublicKeyDiscoveryInput {
  9338  	return _this.Get_().(RawEcdhStaticConfigurations_PublicKeyDiscovery).PublicKeyDiscovery
  9339  }
  9340  
  9341  func (_this RawEcdhStaticConfigurations) Dtor_RawPrivateKeyToStaticPublicKey() RawPrivateKeyToStaticPublicKeyInput {
  9342  	return _this.Get_().(RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey).RawPrivateKeyToStaticPublicKey
  9343  }
  9344  
  9345  func (_this RawEcdhStaticConfigurations) Dtor_EphemeralPrivateKeyToStaticPublicKey() EphemeralPrivateKeyToStaticPublicKeyInput {
  9346  	return _this.Get_().(RawEcdhStaticConfigurations_EphemeralPrivateKeyToStaticPublicKey).EphemeralPrivateKeyToStaticPublicKey
  9347  }
  9348  
  9349  func (_this RawEcdhStaticConfigurations) String() string {
  9350  	switch data := _this.Get_().(type) {
  9351  	case nil:
  9352  		return "null"
  9353  	case RawEcdhStaticConfigurations_PublicKeyDiscovery:
  9354  		{
  9355  			return "AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations.PublicKeyDiscovery" + "(" + _dafny.String(data.PublicKeyDiscovery) + ")"
  9356  		}
  9357  	case RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey:
  9358  		{
  9359  			return "AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations.RawPrivateKeyToStaticPublicKey" + "(" + _dafny.String(data.RawPrivateKeyToStaticPublicKey) + ")"
  9360  		}
  9361  	case RawEcdhStaticConfigurations_EphemeralPrivateKeyToStaticPublicKey:
  9362  		{
  9363  			return "AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations.EphemeralPrivateKeyToStaticPublicKey" + "(" + _dafny.String(data.EphemeralPrivateKeyToStaticPublicKey) + ")"
  9364  		}
  9365  	default:
  9366  		{
  9367  			return "<unexpected>"
  9368  		}
  9369  	}
  9370  }
  9371  
  9372  func (_this RawEcdhStaticConfigurations) Equals(other RawEcdhStaticConfigurations) bool {
  9373  	switch data1 := _this.Get_().(type) {
  9374  	case RawEcdhStaticConfigurations_PublicKeyDiscovery:
  9375  		{
  9376  			data2, ok := other.Get_().(RawEcdhStaticConfigurations_PublicKeyDiscovery)
  9377  			return ok && data1.PublicKeyDiscovery.Equals(data2.PublicKeyDiscovery)
  9378  		}
  9379  	case RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey:
  9380  		{
  9381  			data2, ok := other.Get_().(RawEcdhStaticConfigurations_RawPrivateKeyToStaticPublicKey)
  9382  			return ok && data1.RawPrivateKeyToStaticPublicKey.Equals(data2.RawPrivateKeyToStaticPublicKey)
  9383  		}
  9384  	case RawEcdhStaticConfigurations_EphemeralPrivateKeyToStaticPublicKey:
  9385  		{
  9386  			data2, ok := other.Get_().(RawEcdhStaticConfigurations_EphemeralPrivateKeyToStaticPublicKey)
  9387  			return ok && data1.EphemeralPrivateKeyToStaticPublicKey.Equals(data2.EphemeralPrivateKeyToStaticPublicKey)
  9388  		}
  9389  	default:
  9390  		{
  9391  			return false // unexpected
  9392  		}
  9393  	}
  9394  }
  9395  
  9396  func (_this RawEcdhStaticConfigurations) EqualsGeneric(other interface{}) bool {
  9397  	typed, ok := other.(RawEcdhStaticConfigurations)
  9398  	return ok && _this.Equals(typed)
  9399  }
  9400  
  9401  func Type_RawEcdhStaticConfigurations_() _dafny.TypeDescriptor {
  9402  	return type_RawEcdhStaticConfigurations_{}
  9403  }
  9404  
  9405  type type_RawEcdhStaticConfigurations_ struct {
  9406  }
  9407  
  9408  func (_this type_RawEcdhStaticConfigurations_) Default() interface{} {
  9409  	return Companion_RawEcdhStaticConfigurations_.Default()
  9410  }
  9411  
  9412  func (_this type_RawEcdhStaticConfigurations_) String() string {
  9413  	return "AwsCryptographyMaterialProvidersTypes.RawEcdhStaticConfigurations"
  9414  }
  9415  func (_this RawEcdhStaticConfigurations) ParentTraits_() []*_dafny.TraitID {
  9416  	return [](*_dafny.TraitID){}
  9417  }
  9418  
  9419  var _ _dafny.TraitOffspring = RawEcdhStaticConfigurations{}
  9420  
  9421  // End of datatype RawEcdhStaticConfigurations
  9422  
  9423  // Definition of datatype RawPrivateKeyToStaticPublicKeyInput
  9424  type RawPrivateKeyToStaticPublicKeyInput struct {
  9425  	Data_RawPrivateKeyToStaticPublicKeyInput_
  9426  }
  9427  
  9428  func (_this RawPrivateKeyToStaticPublicKeyInput) Get_() Data_RawPrivateKeyToStaticPublicKeyInput_ {
  9429  	return _this.Data_RawPrivateKeyToStaticPublicKeyInput_
  9430  }
  9431  
  9432  type Data_RawPrivateKeyToStaticPublicKeyInput_ interface {
  9433  	isRawPrivateKeyToStaticPublicKeyInput()
  9434  }
  9435  
  9436  type CompanionStruct_RawPrivateKeyToStaticPublicKeyInput_ struct {
  9437  }
  9438  
  9439  var Companion_RawPrivateKeyToStaticPublicKeyInput_ = CompanionStruct_RawPrivateKeyToStaticPublicKeyInput_{}
  9440  
  9441  type RawPrivateKeyToStaticPublicKeyInput_RawPrivateKeyToStaticPublicKeyInput struct {
  9442  	SenderStaticPrivateKey _dafny.Sequence
  9443  	RecipientPublicKey     _dafny.Sequence
  9444  }
  9445  
  9446  func (RawPrivateKeyToStaticPublicKeyInput_RawPrivateKeyToStaticPublicKeyInput) isRawPrivateKeyToStaticPublicKeyInput() {
  9447  }
  9448  
  9449  func (CompanionStruct_RawPrivateKeyToStaticPublicKeyInput_) Create_RawPrivateKeyToStaticPublicKeyInput_(SenderStaticPrivateKey _dafny.Sequence, RecipientPublicKey _dafny.Sequence) RawPrivateKeyToStaticPublicKeyInput {
  9450  	return RawPrivateKeyToStaticPublicKeyInput{RawPrivateKeyToStaticPublicKeyInput_RawPrivateKeyToStaticPublicKeyInput{SenderStaticPrivateKey, RecipientPublicKey}}
  9451  }
  9452  
  9453  func (_this RawPrivateKeyToStaticPublicKeyInput) Is_RawPrivateKeyToStaticPublicKeyInput() bool {
  9454  	_, ok := _this.Get_().(RawPrivateKeyToStaticPublicKeyInput_RawPrivateKeyToStaticPublicKeyInput)
  9455  	return ok
  9456  }
  9457  
  9458  func (CompanionStruct_RawPrivateKeyToStaticPublicKeyInput_) Default() RawPrivateKeyToStaticPublicKeyInput {
  9459  	return Companion_RawPrivateKeyToStaticPublicKeyInput_.Create_RawPrivateKeyToStaticPublicKeyInput_(_dafny.EmptySeq, _dafny.EmptySeq)
  9460  }
  9461  
  9462  func (_this RawPrivateKeyToStaticPublicKeyInput) Dtor_senderStaticPrivateKey() _dafny.Sequence {
  9463  	return _this.Get_().(RawPrivateKeyToStaticPublicKeyInput_RawPrivateKeyToStaticPublicKeyInput).SenderStaticPrivateKey
  9464  }
  9465  
  9466  func (_this RawPrivateKeyToStaticPublicKeyInput) Dtor_recipientPublicKey() _dafny.Sequence {
  9467  	return _this.Get_().(RawPrivateKeyToStaticPublicKeyInput_RawPrivateKeyToStaticPublicKeyInput).RecipientPublicKey
  9468  }
  9469  
  9470  func (_this RawPrivateKeyToStaticPublicKeyInput) String() string {
  9471  	switch data := _this.Get_().(type) {
  9472  	case nil:
  9473  		return "null"
  9474  	case RawPrivateKeyToStaticPublicKeyInput_RawPrivateKeyToStaticPublicKeyInput:
  9475  		{
  9476  			return "AwsCryptographyMaterialProvidersTypes.RawPrivateKeyToStaticPublicKeyInput.RawPrivateKeyToStaticPublicKeyInput" + "(" + _dafny.String(data.SenderStaticPrivateKey) + ", " + _dafny.String(data.RecipientPublicKey) + ")"
  9477  		}
  9478  	default:
  9479  		{
  9480  			return "<unexpected>"
  9481  		}
  9482  	}
  9483  }
  9484  
  9485  func (_this RawPrivateKeyToStaticPublicKeyInput) Equals(other RawPrivateKeyToStaticPublicKeyInput) bool {
  9486  	switch data1 := _this.Get_().(type) {
  9487  	case RawPrivateKeyToStaticPublicKeyInput_RawPrivateKeyToStaticPublicKeyInput:
  9488  		{
  9489  			data2, ok := other.Get_().(RawPrivateKeyToStaticPublicKeyInput_RawPrivateKeyToStaticPublicKeyInput)
  9490  			return ok && data1.SenderStaticPrivateKey.Equals(data2.SenderStaticPrivateKey) && data1.RecipientPublicKey.Equals(data2.RecipientPublicKey)
  9491  		}
  9492  	default:
  9493  		{
  9494  			return false // unexpected
  9495  		}
  9496  	}
  9497  }
  9498  
  9499  func (_this RawPrivateKeyToStaticPublicKeyInput) EqualsGeneric(other interface{}) bool {
  9500  	typed, ok := other.(RawPrivateKeyToStaticPublicKeyInput)
  9501  	return ok && _this.Equals(typed)
  9502  }
  9503  
  9504  func Type_RawPrivateKeyToStaticPublicKeyInput_() _dafny.TypeDescriptor {
  9505  	return type_RawPrivateKeyToStaticPublicKeyInput_{}
  9506  }
  9507  
  9508  type type_RawPrivateKeyToStaticPublicKeyInput_ struct {
  9509  }
  9510  
  9511  func (_this type_RawPrivateKeyToStaticPublicKeyInput_) Default() interface{} {
  9512  	return Companion_RawPrivateKeyToStaticPublicKeyInput_.Default()
  9513  }
  9514  
  9515  func (_this type_RawPrivateKeyToStaticPublicKeyInput_) String() string {
  9516  	return "AwsCryptographyMaterialProvidersTypes.RawPrivateKeyToStaticPublicKeyInput"
  9517  }
  9518  func (_this RawPrivateKeyToStaticPublicKeyInput) ParentTraits_() []*_dafny.TraitID {
  9519  	return [](*_dafny.TraitID){}
  9520  }
  9521  
  9522  var _ _dafny.TraitOffspring = RawPrivateKeyToStaticPublicKeyInput{}
  9523  
  9524  // End of datatype RawPrivateKeyToStaticPublicKeyInput
  9525  
  9526  // Definition of datatype SignatureAlgorithm
  9527  type SignatureAlgorithm struct {
  9528  	Data_SignatureAlgorithm_
  9529  }
  9530  
  9531  func (_this SignatureAlgorithm) Get_() Data_SignatureAlgorithm_ {
  9532  	return _this.Data_SignatureAlgorithm_
  9533  }
  9534  
  9535  type Data_SignatureAlgorithm_ interface {
  9536  	isSignatureAlgorithm()
  9537  }
  9538  
  9539  type CompanionStruct_SignatureAlgorithm_ struct {
  9540  }
  9541  
  9542  var Companion_SignatureAlgorithm_ = CompanionStruct_SignatureAlgorithm_{}
  9543  
  9544  type SignatureAlgorithm_ECDSA struct {
  9545  	ECDSA ECDSA
  9546  }
  9547  
  9548  func (SignatureAlgorithm_ECDSA) isSignatureAlgorithm() {}
  9549  
  9550  func (CompanionStruct_SignatureAlgorithm_) Create_ECDSA_(ECDSA ECDSA) SignatureAlgorithm {
  9551  	return SignatureAlgorithm{SignatureAlgorithm_ECDSA{ECDSA}}
  9552  }
  9553  
  9554  func (_this SignatureAlgorithm) Is_ECDSA() bool {
  9555  	_, ok := _this.Get_().(SignatureAlgorithm_ECDSA)
  9556  	return ok
  9557  }
  9558  
  9559  type SignatureAlgorithm_None struct {
  9560  	None None
  9561  }
  9562  
  9563  func (SignatureAlgorithm_None) isSignatureAlgorithm() {}
  9564  
  9565  func (CompanionStruct_SignatureAlgorithm_) Create_None_(None None) SignatureAlgorithm {
  9566  	return SignatureAlgorithm{SignatureAlgorithm_None{None}}
  9567  }
  9568  
  9569  func (_this SignatureAlgorithm) Is_None() bool {
  9570  	_, ok := _this.Get_().(SignatureAlgorithm_None)
  9571  	return ok
  9572  }
  9573  
  9574  func (CompanionStruct_SignatureAlgorithm_) Default() SignatureAlgorithm {
  9575  	return Companion_SignatureAlgorithm_.Create_ECDSA_(Companion_ECDSA_.Default())
  9576  }
  9577  
  9578  func (_this SignatureAlgorithm) Dtor_ECDSA() ECDSA {
  9579  	return _this.Get_().(SignatureAlgorithm_ECDSA).ECDSA
  9580  }
  9581  
  9582  func (_this SignatureAlgorithm) Dtor_None() None {
  9583  	return _this.Get_().(SignatureAlgorithm_None).None
  9584  }
  9585  
  9586  func (_this SignatureAlgorithm) String() string {
  9587  	switch data := _this.Get_().(type) {
  9588  	case nil:
  9589  		return "null"
  9590  	case SignatureAlgorithm_ECDSA:
  9591  		{
  9592  			return "AwsCryptographyMaterialProvidersTypes.SignatureAlgorithm.ECDSA" + "(" + _dafny.String(data.ECDSA) + ")"
  9593  		}
  9594  	case SignatureAlgorithm_None:
  9595  		{
  9596  			return "AwsCryptographyMaterialProvidersTypes.SignatureAlgorithm.None" + "(" + _dafny.String(data.None) + ")"
  9597  		}
  9598  	default:
  9599  		{
  9600  			return "<unexpected>"
  9601  		}
  9602  	}
  9603  }
  9604  
  9605  func (_this SignatureAlgorithm) Equals(other SignatureAlgorithm) bool {
  9606  	switch data1 := _this.Get_().(type) {
  9607  	case SignatureAlgorithm_ECDSA:
  9608  		{
  9609  			data2, ok := other.Get_().(SignatureAlgorithm_ECDSA)
  9610  			return ok && data1.ECDSA.Equals(data2.ECDSA)
  9611  		}
  9612  	case SignatureAlgorithm_None:
  9613  		{
  9614  			data2, ok := other.Get_().(SignatureAlgorithm_None)
  9615  			return ok && data1.None.Equals(data2.None)
  9616  		}
  9617  	default:
  9618  		{
  9619  			return false // unexpected
  9620  		}
  9621  	}
  9622  }
  9623  
  9624  func (_this SignatureAlgorithm) EqualsGeneric(other interface{}) bool {
  9625  	typed, ok := other.(SignatureAlgorithm)
  9626  	return ok && _this.Equals(typed)
  9627  }
  9628  
  9629  func Type_SignatureAlgorithm_() _dafny.TypeDescriptor {
  9630  	return type_SignatureAlgorithm_{}
  9631  }
  9632  
  9633  type type_SignatureAlgorithm_ struct {
  9634  }
  9635  
  9636  func (_this type_SignatureAlgorithm_) Default() interface{} {
  9637  	return Companion_SignatureAlgorithm_.Default()
  9638  }
  9639  
  9640  func (_this type_SignatureAlgorithm_) String() string {
  9641  	return "AwsCryptographyMaterialProvidersTypes.SignatureAlgorithm"
  9642  }
  9643  func (_this SignatureAlgorithm) ParentTraits_() []*_dafny.TraitID {
  9644  	return [](*_dafny.TraitID){}
  9645  }
  9646  
  9647  var _ _dafny.TraitOffspring = SignatureAlgorithm{}
  9648  
  9649  // End of datatype SignatureAlgorithm
  9650  
  9651  // Definition of datatype SingleThreadedCache
  9652  type SingleThreadedCache struct {
  9653  	Data_SingleThreadedCache_
  9654  }
  9655  
  9656  func (_this SingleThreadedCache) Get_() Data_SingleThreadedCache_ {
  9657  	return _this.Data_SingleThreadedCache_
  9658  }
  9659  
  9660  type Data_SingleThreadedCache_ interface {
  9661  	isSingleThreadedCache()
  9662  }
  9663  
  9664  type CompanionStruct_SingleThreadedCache_ struct {
  9665  }
  9666  
  9667  var Companion_SingleThreadedCache_ = CompanionStruct_SingleThreadedCache_{}
  9668  
  9669  type SingleThreadedCache_SingleThreadedCache struct {
  9670  	EntryCapacity        int32
  9671  	EntryPruningTailSize m_Wrappers.Option
  9672  }
  9673  
  9674  func (SingleThreadedCache_SingleThreadedCache) isSingleThreadedCache() {}
  9675  
  9676  func (CompanionStruct_SingleThreadedCache_) Create_SingleThreadedCache_(EntryCapacity int32, EntryPruningTailSize m_Wrappers.Option) SingleThreadedCache {
  9677  	return SingleThreadedCache{SingleThreadedCache_SingleThreadedCache{EntryCapacity, EntryPruningTailSize}}
  9678  }
  9679  
  9680  func (_this SingleThreadedCache) Is_SingleThreadedCache() bool {
  9681  	_, ok := _this.Get_().(SingleThreadedCache_SingleThreadedCache)
  9682  	return ok
  9683  }
  9684  
  9685  func (CompanionStruct_SingleThreadedCache_) Default() SingleThreadedCache {
  9686  	return Companion_SingleThreadedCache_.Create_SingleThreadedCache_(int32(0), m_Wrappers.Companion_Option_.Default())
  9687  }
  9688  
  9689  func (_this SingleThreadedCache) Dtor_entryCapacity() int32 {
  9690  	return _this.Get_().(SingleThreadedCache_SingleThreadedCache).EntryCapacity
  9691  }
  9692  
  9693  func (_this SingleThreadedCache) Dtor_entryPruningTailSize() m_Wrappers.Option {
  9694  	return _this.Get_().(SingleThreadedCache_SingleThreadedCache).EntryPruningTailSize
  9695  }
  9696  
  9697  func (_this SingleThreadedCache) String() string {
  9698  	switch data := _this.Get_().(type) {
  9699  	case nil:
  9700  		return "null"
  9701  	case SingleThreadedCache_SingleThreadedCache:
  9702  		{
  9703  			return "AwsCryptographyMaterialProvidersTypes.SingleThreadedCache.SingleThreadedCache" + "(" + _dafny.String(data.EntryCapacity) + ", " + _dafny.String(data.EntryPruningTailSize) + ")"
  9704  		}
  9705  	default:
  9706  		{
  9707  			return "<unexpected>"
  9708  		}
  9709  	}
  9710  }
  9711  
  9712  func (_this SingleThreadedCache) Equals(other SingleThreadedCache) bool {
  9713  	switch data1 := _this.Get_().(type) {
  9714  	case SingleThreadedCache_SingleThreadedCache:
  9715  		{
  9716  			data2, ok := other.Get_().(SingleThreadedCache_SingleThreadedCache)
  9717  			return ok && data1.EntryCapacity == data2.EntryCapacity && data1.EntryPruningTailSize.Equals(data2.EntryPruningTailSize)
  9718  		}
  9719  	default:
  9720  		{
  9721  			return false // unexpected
  9722  		}
  9723  	}
  9724  }
  9725  
  9726  func (_this SingleThreadedCache) EqualsGeneric(other interface{}) bool {
  9727  	typed, ok := other.(SingleThreadedCache)
  9728  	return ok && _this.Equals(typed)
  9729  }
  9730  
  9731  func Type_SingleThreadedCache_() _dafny.TypeDescriptor {
  9732  	return type_SingleThreadedCache_{}
  9733  }
  9734  
  9735  type type_SingleThreadedCache_ struct {
  9736  }
  9737  
  9738  func (_this type_SingleThreadedCache_) Default() interface{} {
  9739  	return Companion_SingleThreadedCache_.Default()
  9740  }
  9741  
  9742  func (_this type_SingleThreadedCache_) String() string {
  9743  	return "AwsCryptographyMaterialProvidersTypes.SingleThreadedCache"
  9744  }
  9745  func (_this SingleThreadedCache) ParentTraits_() []*_dafny.TraitID {
  9746  	return [](*_dafny.TraitID){}
  9747  }
  9748  
  9749  var _ _dafny.TraitOffspring = SingleThreadedCache{}
  9750  
  9751  // End of datatype SingleThreadedCache
  9752  
  9753  // Definition of datatype StaticConfigurations
  9754  type StaticConfigurations struct {
  9755  	Data_StaticConfigurations_
  9756  }
  9757  
  9758  func (_this StaticConfigurations) Get_() Data_StaticConfigurations_ {
  9759  	return _this.Data_StaticConfigurations_
  9760  }
  9761  
  9762  type Data_StaticConfigurations_ interface {
  9763  	isStaticConfigurations()
  9764  }
  9765  
  9766  type CompanionStruct_StaticConfigurations_ struct {
  9767  }
  9768  
  9769  var Companion_StaticConfigurations_ = CompanionStruct_StaticConfigurations_{}
  9770  
  9771  type StaticConfigurations_AWS__KMS__ECDH struct {
  9772  	AWS__KMS__ECDH KmsEcdhStaticConfigurations
  9773  }
  9774  
  9775  func (StaticConfigurations_AWS__KMS__ECDH) isStaticConfigurations() {}
  9776  
  9777  func (CompanionStruct_StaticConfigurations_) Create_AWS__KMS__ECDH_(AWS__KMS__ECDH KmsEcdhStaticConfigurations) StaticConfigurations {
  9778  	return StaticConfigurations{StaticConfigurations_AWS__KMS__ECDH{AWS__KMS__ECDH}}
  9779  }
  9780  
  9781  func (_this StaticConfigurations) Is_AWS__KMS__ECDH() bool {
  9782  	_, ok := _this.Get_().(StaticConfigurations_AWS__KMS__ECDH)
  9783  	return ok
  9784  }
  9785  
  9786  type StaticConfigurations_RAW__ECDH struct {
  9787  	RAW__ECDH RawEcdhStaticConfigurations
  9788  }
  9789  
  9790  func (StaticConfigurations_RAW__ECDH) isStaticConfigurations() {}
  9791  
  9792  func (CompanionStruct_StaticConfigurations_) Create_RAW__ECDH_(RAW__ECDH RawEcdhStaticConfigurations) StaticConfigurations {
  9793  	return StaticConfigurations{StaticConfigurations_RAW__ECDH{RAW__ECDH}}
  9794  }
  9795  
  9796  func (_this StaticConfigurations) Is_RAW__ECDH() bool {
  9797  	_, ok := _this.Get_().(StaticConfigurations_RAW__ECDH)
  9798  	return ok
  9799  }
  9800  
  9801  func (CompanionStruct_StaticConfigurations_) Default() StaticConfigurations {
  9802  	return Companion_StaticConfigurations_.Create_AWS__KMS__ECDH_(Companion_KmsEcdhStaticConfigurations_.Default())
  9803  }
  9804  
  9805  func (_this StaticConfigurations) Dtor_AWS__KMS__ECDH() KmsEcdhStaticConfigurations {
  9806  	return _this.Get_().(StaticConfigurations_AWS__KMS__ECDH).AWS__KMS__ECDH
  9807  }
  9808  
  9809  func (_this StaticConfigurations) Dtor_RAW__ECDH() RawEcdhStaticConfigurations {
  9810  	return _this.Get_().(StaticConfigurations_RAW__ECDH).RAW__ECDH
  9811  }
  9812  
  9813  func (_this StaticConfigurations) String() string {
  9814  	switch data := _this.Get_().(type) {
  9815  	case nil:
  9816  		return "null"
  9817  	case StaticConfigurations_AWS__KMS__ECDH:
  9818  		{
  9819  			return "AwsCryptographyMaterialProvidersTypes.StaticConfigurations.AWS_KMS_ECDH" + "(" + _dafny.String(data.AWS__KMS__ECDH) + ")"
  9820  		}
  9821  	case StaticConfigurations_RAW__ECDH:
  9822  		{
  9823  			return "AwsCryptographyMaterialProvidersTypes.StaticConfigurations.RAW_ECDH" + "(" + _dafny.String(data.RAW__ECDH) + ")"
  9824  		}
  9825  	default:
  9826  		{
  9827  			return "<unexpected>"
  9828  		}
  9829  	}
  9830  }
  9831  
  9832  func (_this StaticConfigurations) Equals(other StaticConfigurations) bool {
  9833  	switch data1 := _this.Get_().(type) {
  9834  	case StaticConfigurations_AWS__KMS__ECDH:
  9835  		{
  9836  			data2, ok := other.Get_().(StaticConfigurations_AWS__KMS__ECDH)
  9837  			return ok && data1.AWS__KMS__ECDH.Equals(data2.AWS__KMS__ECDH)
  9838  		}
  9839  	case StaticConfigurations_RAW__ECDH:
  9840  		{
  9841  			data2, ok := other.Get_().(StaticConfigurations_RAW__ECDH)
  9842  			return ok && data1.RAW__ECDH.Equals(data2.RAW__ECDH)
  9843  		}
  9844  	default:
  9845  		{
  9846  			return false // unexpected
  9847  		}
  9848  	}
  9849  }
  9850  
  9851  func (_this StaticConfigurations) EqualsGeneric(other interface{}) bool {
  9852  	typed, ok := other.(StaticConfigurations)
  9853  	return ok && _this.Equals(typed)
  9854  }
  9855  
  9856  func Type_StaticConfigurations_() _dafny.TypeDescriptor {
  9857  	return type_StaticConfigurations_{}
  9858  }
  9859  
  9860  type type_StaticConfigurations_ struct {
  9861  }
  9862  
  9863  func (_this type_StaticConfigurations_) Default() interface{} {
  9864  	return Companion_StaticConfigurations_.Default()
  9865  }
  9866  
  9867  func (_this type_StaticConfigurations_) String() string {
  9868  	return "AwsCryptographyMaterialProvidersTypes.StaticConfigurations"
  9869  }
  9870  func (_this StaticConfigurations) ParentTraits_() []*_dafny.TraitID {
  9871  	return [](*_dafny.TraitID){}
  9872  }
  9873  
  9874  var _ _dafny.TraitOffspring = StaticConfigurations{}
  9875  
  9876  // End of datatype StaticConfigurations
  9877  
  9878  // Definition of datatype StormTrackingCache
  9879  type StormTrackingCache struct {
  9880  	Data_StormTrackingCache_
  9881  }
  9882  
  9883  func (_this StormTrackingCache) Get_() Data_StormTrackingCache_ {
  9884  	return _this.Data_StormTrackingCache_
  9885  }
  9886  
  9887  type Data_StormTrackingCache_ interface {
  9888  	isStormTrackingCache()
  9889  }
  9890  
  9891  type CompanionStruct_StormTrackingCache_ struct {
  9892  }
  9893  
  9894  var Companion_StormTrackingCache_ = CompanionStruct_StormTrackingCache_{}
  9895  
  9896  type StormTrackingCache_StormTrackingCache struct {
  9897  	EntryCapacity        int32
  9898  	EntryPruningTailSize m_Wrappers.Option
  9899  	GracePeriod          int32
  9900  	GraceInterval        int32
  9901  	FanOut               int32
  9902  	InFlightTTL          int32
  9903  	SleepMilli           int32
  9904  	TimeUnits            m_Wrappers.Option
  9905  }
  9906  
  9907  func (StormTrackingCache_StormTrackingCache) isStormTrackingCache() {}
  9908  
  9909  func (CompanionStruct_StormTrackingCache_) Create_StormTrackingCache_(EntryCapacity int32, EntryPruningTailSize m_Wrappers.Option, GracePeriod int32, GraceInterval int32, FanOut int32, InFlightTTL int32, SleepMilli int32, TimeUnits m_Wrappers.Option) StormTrackingCache {
  9910  	return StormTrackingCache{StormTrackingCache_StormTrackingCache{EntryCapacity, EntryPruningTailSize, GracePeriod, GraceInterval, FanOut, InFlightTTL, SleepMilli, TimeUnits}}
  9911  }
  9912  
  9913  func (_this StormTrackingCache) Is_StormTrackingCache() bool {
  9914  	_, ok := _this.Get_().(StormTrackingCache_StormTrackingCache)
  9915  	return ok
  9916  }
  9917  
  9918  func (CompanionStruct_StormTrackingCache_) Default() StormTrackingCache {
  9919  	return Companion_StormTrackingCache_.Create_StormTrackingCache_(int32(0), m_Wrappers.Companion_Option_.Default(), int32(0), int32(0), int32(0), int32(0), int32(0), m_Wrappers.Companion_Option_.Default())
  9920  }
  9921  
  9922  func (_this StormTrackingCache) Dtor_entryCapacity() int32 {
  9923  	return _this.Get_().(StormTrackingCache_StormTrackingCache).EntryCapacity
  9924  }
  9925  
  9926  func (_this StormTrackingCache) Dtor_entryPruningTailSize() m_Wrappers.Option {
  9927  	return _this.Get_().(StormTrackingCache_StormTrackingCache).EntryPruningTailSize
  9928  }
  9929  
  9930  func (_this StormTrackingCache) Dtor_gracePeriod() int32 {
  9931  	return _this.Get_().(StormTrackingCache_StormTrackingCache).GracePeriod
  9932  }
  9933  
  9934  func (_this StormTrackingCache) Dtor_graceInterval() int32 {
  9935  	return _this.Get_().(StormTrackingCache_StormTrackingCache).GraceInterval
  9936  }
  9937  
  9938  func (_this StormTrackingCache) Dtor_fanOut() int32 {
  9939  	return _this.Get_().(StormTrackingCache_StormTrackingCache).FanOut
  9940  }
  9941  
  9942  func (_this StormTrackingCache) Dtor_inFlightTTL() int32 {
  9943  	return _this.Get_().(StormTrackingCache_StormTrackingCache).InFlightTTL
  9944  }
  9945  
  9946  func (_this StormTrackingCache) Dtor_sleepMilli() int32 {
  9947  	return _this.Get_().(StormTrackingCache_StormTrackingCache).SleepMilli
  9948  }
  9949  
  9950  func (_this StormTrackingCache) Dtor_timeUnits() m_Wrappers.Option {
  9951  	return _this.Get_().(StormTrackingCache_StormTrackingCache).TimeUnits
  9952  }
  9953  
  9954  func (_this StormTrackingCache) String() string {
  9955  	switch data := _this.Get_().(type) {
  9956  	case nil:
  9957  		return "null"
  9958  	case StormTrackingCache_StormTrackingCache:
  9959  		{
  9960  			return "AwsCryptographyMaterialProvidersTypes.StormTrackingCache.StormTrackingCache" + "(" + _dafny.String(data.EntryCapacity) + ", " + _dafny.String(data.EntryPruningTailSize) + ", " + _dafny.String(data.GracePeriod) + ", " + _dafny.String(data.GraceInterval) + ", " + _dafny.String(data.FanOut) + ", " + _dafny.String(data.InFlightTTL) + ", " + _dafny.String(data.SleepMilli) + ", " + _dafny.String(data.TimeUnits) + ")"
  9961  		}
  9962  	default:
  9963  		{
  9964  			return "<unexpected>"
  9965  		}
  9966  	}
  9967  }
  9968  
  9969  func (_this StormTrackingCache) Equals(other StormTrackingCache) bool {
  9970  	switch data1 := _this.Get_().(type) {
  9971  	case StormTrackingCache_StormTrackingCache:
  9972  		{
  9973  			data2, ok := other.Get_().(StormTrackingCache_StormTrackingCache)
  9974  			return ok && data1.EntryCapacity == data2.EntryCapacity && data1.EntryPruningTailSize.Equals(data2.EntryPruningTailSize) && data1.GracePeriod == data2.GracePeriod && data1.GraceInterval == data2.GraceInterval && data1.FanOut == data2.FanOut && data1.InFlightTTL == data2.InFlightTTL && data1.SleepMilli == data2.SleepMilli && data1.TimeUnits.Equals(data2.TimeUnits)
  9975  		}
  9976  	default:
  9977  		{
  9978  			return false // unexpected
  9979  		}
  9980  	}
  9981  }
  9982  
  9983  func (_this StormTrackingCache) EqualsGeneric(other interface{}) bool {
  9984  	typed, ok := other.(StormTrackingCache)
  9985  	return ok && _this.Equals(typed)
  9986  }
  9987  
  9988  func Type_StormTrackingCache_() _dafny.TypeDescriptor {
  9989  	return type_StormTrackingCache_{}
  9990  }
  9991  
  9992  type type_StormTrackingCache_ struct {
  9993  }
  9994  
  9995  func (_this type_StormTrackingCache_) Default() interface{} {
  9996  	return Companion_StormTrackingCache_.Default()
  9997  }
  9998  
  9999  func (_this type_StormTrackingCache_) String() string {
 10000  	return "AwsCryptographyMaterialProvidersTypes.StormTrackingCache"
 10001  }
 10002  func (_this StormTrackingCache) ParentTraits_() []*_dafny.TraitID {
 10003  	return [](*_dafny.TraitID){}
 10004  }
 10005  
 10006  var _ _dafny.TraitOffspring = StormTrackingCache{}
 10007  
 10008  // End of datatype StormTrackingCache
 10009  
 10010  // Definition of datatype SymmetricSignatureAlgorithm
 10011  type SymmetricSignatureAlgorithm struct {
 10012  	Data_SymmetricSignatureAlgorithm_
 10013  }
 10014  
 10015  func (_this SymmetricSignatureAlgorithm) Get_() Data_SymmetricSignatureAlgorithm_ {
 10016  	return _this.Data_SymmetricSignatureAlgorithm_
 10017  }
 10018  
 10019  type Data_SymmetricSignatureAlgorithm_ interface {
 10020  	isSymmetricSignatureAlgorithm()
 10021  }
 10022  
 10023  type CompanionStruct_SymmetricSignatureAlgorithm_ struct {
 10024  }
 10025  
 10026  var Companion_SymmetricSignatureAlgorithm_ = CompanionStruct_SymmetricSignatureAlgorithm_{}
 10027  
 10028  type SymmetricSignatureAlgorithm_HMAC struct {
 10029  	HMAC m_AwsCryptographyPrimitivesTypes.DigestAlgorithm
 10030  }
 10031  
 10032  func (SymmetricSignatureAlgorithm_HMAC) isSymmetricSignatureAlgorithm() {}
 10033  
 10034  func (CompanionStruct_SymmetricSignatureAlgorithm_) Create_HMAC_(HMAC m_AwsCryptographyPrimitivesTypes.DigestAlgorithm) SymmetricSignatureAlgorithm {
 10035  	return SymmetricSignatureAlgorithm{SymmetricSignatureAlgorithm_HMAC{HMAC}}
 10036  }
 10037  
 10038  func (_this SymmetricSignatureAlgorithm) Is_HMAC() bool {
 10039  	_, ok := _this.Get_().(SymmetricSignatureAlgorithm_HMAC)
 10040  	return ok
 10041  }
 10042  
 10043  type SymmetricSignatureAlgorithm_None struct {
 10044  	None None
 10045  }
 10046  
 10047  func (SymmetricSignatureAlgorithm_None) isSymmetricSignatureAlgorithm() {}
 10048  
 10049  func (CompanionStruct_SymmetricSignatureAlgorithm_) Create_None_(None None) SymmetricSignatureAlgorithm {
 10050  	return SymmetricSignatureAlgorithm{SymmetricSignatureAlgorithm_None{None}}
 10051  }
 10052  
 10053  func (_this SymmetricSignatureAlgorithm) Is_None() bool {
 10054  	_, ok := _this.Get_().(SymmetricSignatureAlgorithm_None)
 10055  	return ok
 10056  }
 10057  
 10058  func (CompanionStruct_SymmetricSignatureAlgorithm_) Default() SymmetricSignatureAlgorithm {
 10059  	return Companion_SymmetricSignatureAlgorithm_.Create_HMAC_(m_AwsCryptographyPrimitivesTypes.Companion_DigestAlgorithm_.Default())
 10060  }
 10061  
 10062  func (_this SymmetricSignatureAlgorithm) Dtor_HMAC() m_AwsCryptographyPrimitivesTypes.DigestAlgorithm {
 10063  	return _this.Get_().(SymmetricSignatureAlgorithm_HMAC).HMAC
 10064  }
 10065  
 10066  func (_this SymmetricSignatureAlgorithm) Dtor_None() None {
 10067  	return _this.Get_().(SymmetricSignatureAlgorithm_None).None
 10068  }
 10069  
 10070  func (_this SymmetricSignatureAlgorithm) String() string {
 10071  	switch data := _this.Get_().(type) {
 10072  	case nil:
 10073  		return "null"
 10074  	case SymmetricSignatureAlgorithm_HMAC:
 10075  		{
 10076  			return "AwsCryptographyMaterialProvidersTypes.SymmetricSignatureAlgorithm.HMAC" + "(" + _dafny.String(data.HMAC) + ")"
 10077  		}
 10078  	case SymmetricSignatureAlgorithm_None:
 10079  		{
 10080  			return "AwsCryptographyMaterialProvidersTypes.SymmetricSignatureAlgorithm.None" + "(" + _dafny.String(data.None) + ")"
 10081  		}
 10082  	default:
 10083  		{
 10084  			return "<unexpected>"
 10085  		}
 10086  	}
 10087  }
 10088  
 10089  func (_this SymmetricSignatureAlgorithm) Equals(other SymmetricSignatureAlgorithm) bool {
 10090  	switch data1 := _this.Get_().(type) {
 10091  	case SymmetricSignatureAlgorithm_HMAC:
 10092  		{
 10093  			data2, ok := other.Get_().(SymmetricSignatureAlgorithm_HMAC)
 10094  			return ok && data1.HMAC.Equals(data2.HMAC)
 10095  		}
 10096  	case SymmetricSignatureAlgorithm_None:
 10097  		{
 10098  			data2, ok := other.Get_().(SymmetricSignatureAlgorithm_None)
 10099  			return ok && data1.None.Equals(data2.None)
 10100  		}
 10101  	default:
 10102  		{
 10103  			return false // unexpected
 10104  		}
 10105  	}
 10106  }
 10107  
 10108  func (_this SymmetricSignatureAlgorithm) EqualsGeneric(other interface{}) bool {
 10109  	typed, ok := other.(SymmetricSignatureAlgorithm)
 10110  	return ok && _this.Equals(typed)
 10111  }
 10112  
 10113  func Type_SymmetricSignatureAlgorithm_() _dafny.TypeDescriptor {
 10114  	return type_SymmetricSignatureAlgorithm_{}
 10115  }
 10116  
 10117  type type_SymmetricSignatureAlgorithm_ struct {
 10118  }
 10119  
 10120  func (_this type_SymmetricSignatureAlgorithm_) Default() interface{} {
 10121  	return Companion_SymmetricSignatureAlgorithm_.Default()
 10122  }
 10123  
 10124  func (_this type_SymmetricSignatureAlgorithm_) String() string {
 10125  	return "AwsCryptographyMaterialProvidersTypes.SymmetricSignatureAlgorithm"
 10126  }
 10127  func (_this SymmetricSignatureAlgorithm) ParentTraits_() []*_dafny.TraitID {
 10128  	return [](*_dafny.TraitID){}
 10129  }
 10130  
 10131  var _ _dafny.TraitOffspring = SymmetricSignatureAlgorithm{}
 10132  
 10133  // End of datatype SymmetricSignatureAlgorithm
 10134  
 10135  // Definition of datatype TimeUnits
 10136  type TimeUnits struct {
 10137  	Data_TimeUnits_
 10138  }
 10139  
 10140  func (_this TimeUnits) Get_() Data_TimeUnits_ {
 10141  	return _this.Data_TimeUnits_
 10142  }
 10143  
 10144  type Data_TimeUnits_ interface {
 10145  	isTimeUnits()
 10146  }
 10147  
 10148  type CompanionStruct_TimeUnits_ struct {
 10149  }
 10150  
 10151  var Companion_TimeUnits_ = CompanionStruct_TimeUnits_{}
 10152  
 10153  type TimeUnits_Seconds struct {
 10154  }
 10155  
 10156  func (TimeUnits_Seconds) isTimeUnits() {}
 10157  
 10158  func (CompanionStruct_TimeUnits_) Create_Seconds_() TimeUnits {
 10159  	return TimeUnits{TimeUnits_Seconds{}}
 10160  }
 10161  
 10162  func (_this TimeUnits) Is_Seconds() bool {
 10163  	_, ok := _this.Get_().(TimeUnits_Seconds)
 10164  	return ok
 10165  }
 10166  
 10167  type TimeUnits_Milliseconds struct {
 10168  }
 10169  
 10170  func (TimeUnits_Milliseconds) isTimeUnits() {}
 10171  
 10172  func (CompanionStruct_TimeUnits_) Create_Milliseconds_() TimeUnits {
 10173  	return TimeUnits{TimeUnits_Milliseconds{}}
 10174  }
 10175  
 10176  func (_this TimeUnits) Is_Milliseconds() bool {
 10177  	_, ok := _this.Get_().(TimeUnits_Milliseconds)
 10178  	return ok
 10179  }
 10180  
 10181  func (CompanionStruct_TimeUnits_) Default() TimeUnits {
 10182  	return Companion_TimeUnits_.Create_Seconds_()
 10183  }
 10184  
 10185  func (_ CompanionStruct_TimeUnits_) AllSingletonConstructors() _dafny.Iterator {
 10186  	i := -1
 10187  	return func() (interface{}, bool) {
 10188  		i++
 10189  		switch i {
 10190  		case 0:
 10191  			return Companion_TimeUnits_.Create_Seconds_(), true
 10192  		case 1:
 10193  			return Companion_TimeUnits_.Create_Milliseconds_(), true
 10194  		default:
 10195  			return TimeUnits{}, false
 10196  		}
 10197  	}
 10198  }
 10199  
 10200  func (_this TimeUnits) String() string {
 10201  	switch _this.Get_().(type) {
 10202  	case nil:
 10203  		return "null"
 10204  	case TimeUnits_Seconds:
 10205  		{
 10206  			return "AwsCryptographyMaterialProvidersTypes.TimeUnits.Seconds"
 10207  		}
 10208  	case TimeUnits_Milliseconds:
 10209  		{
 10210  			return "AwsCryptographyMaterialProvidersTypes.TimeUnits.Milliseconds"
 10211  		}
 10212  	default:
 10213  		{
 10214  			return "<unexpected>"
 10215  		}
 10216  	}
 10217  }
 10218  
 10219  func (_this TimeUnits) Equals(other TimeUnits) bool {
 10220  	switch _this.Get_().(type) {
 10221  	case TimeUnits_Seconds:
 10222  		{
 10223  			_, ok := other.Get_().(TimeUnits_Seconds)
 10224  			return ok
 10225  		}
 10226  	case TimeUnits_Milliseconds:
 10227  		{
 10228  			_, ok := other.Get_().(TimeUnits_Milliseconds)
 10229  			return ok
 10230  		}
 10231  	default:
 10232  		{
 10233  			return false // unexpected
 10234  		}
 10235  	}
 10236  }
 10237  
 10238  func (_this TimeUnits) EqualsGeneric(other interface{}) bool {
 10239  	typed, ok := other.(TimeUnits)
 10240  	return ok && _this.Equals(typed)
 10241  }
 10242  
 10243  func Type_TimeUnits_() _dafny.TypeDescriptor {
 10244  	return type_TimeUnits_{}
 10245  }
 10246  
 10247  type type_TimeUnits_ struct {
 10248  }
 10249  
 10250  func (_this type_TimeUnits_) Default() interface{} {
 10251  	return Companion_TimeUnits_.Default()
 10252  }
 10253  
 10254  func (_this type_TimeUnits_) String() string {
 10255  	return "AwsCryptographyMaterialProvidersTypes.TimeUnits"
 10256  }
 10257  func (_this TimeUnits) ParentTraits_() []*_dafny.TraitID {
 10258  	return [](*_dafny.TraitID){}
 10259  }
 10260  
 10261  var _ _dafny.TraitOffspring = TimeUnits{}
 10262  
 10263  // End of datatype TimeUnits
 10264  
 10265  // Definition of datatype UpdateUsageMetadataInput
 10266  type UpdateUsageMetadataInput struct {
 10267  	Data_UpdateUsageMetadataInput_
 10268  }
 10269  
 10270  func (_this UpdateUsageMetadataInput) Get_() Data_UpdateUsageMetadataInput_ {
 10271  	return _this.Data_UpdateUsageMetadataInput_
 10272  }
 10273  
 10274  type Data_UpdateUsageMetadataInput_ interface {
 10275  	isUpdateUsageMetadataInput()
 10276  }
 10277  
 10278  type CompanionStruct_UpdateUsageMetadataInput_ struct {
 10279  }
 10280  
 10281  var Companion_UpdateUsageMetadataInput_ = CompanionStruct_UpdateUsageMetadataInput_{}
 10282  
 10283  type UpdateUsageMetadataInput_UpdateUsageMetadataInput struct {
 10284  	Identifier _dafny.Sequence
 10285  	BytesUsed  int32
 10286  }
 10287  
 10288  func (UpdateUsageMetadataInput_UpdateUsageMetadataInput) isUpdateUsageMetadataInput() {}
 10289  
 10290  func (CompanionStruct_UpdateUsageMetadataInput_) Create_UpdateUsageMetadataInput_(Identifier _dafny.Sequence, BytesUsed int32) UpdateUsageMetadataInput {
 10291  	return UpdateUsageMetadataInput{UpdateUsageMetadataInput_UpdateUsageMetadataInput{Identifier, BytesUsed}}
 10292  }
 10293  
 10294  func (_this UpdateUsageMetadataInput) Is_UpdateUsageMetadataInput() bool {
 10295  	_, ok := _this.Get_().(UpdateUsageMetadataInput_UpdateUsageMetadataInput)
 10296  	return ok
 10297  }
 10298  
 10299  func (CompanionStruct_UpdateUsageMetadataInput_) Default() UpdateUsageMetadataInput {
 10300  	return Companion_UpdateUsageMetadataInput_.Create_UpdateUsageMetadataInput_(_dafny.EmptySeq, int32(0))
 10301  }
 10302  
 10303  func (_this UpdateUsageMetadataInput) Dtor_identifier() _dafny.Sequence {
 10304  	return _this.Get_().(UpdateUsageMetadataInput_UpdateUsageMetadataInput).Identifier
 10305  }
 10306  
 10307  func (_this UpdateUsageMetadataInput) Dtor_bytesUsed() int32 {
 10308  	return _this.Get_().(UpdateUsageMetadataInput_UpdateUsageMetadataInput).BytesUsed
 10309  }
 10310  
 10311  func (_this UpdateUsageMetadataInput) String() string {
 10312  	switch data := _this.Get_().(type) {
 10313  	case nil:
 10314  		return "null"
 10315  	case UpdateUsageMetadataInput_UpdateUsageMetadataInput:
 10316  		{
 10317  			return "AwsCryptographyMaterialProvidersTypes.UpdateUsageMetadataInput.UpdateUsageMetadataInput" + "(" + _dafny.String(data.Identifier) + ", " + _dafny.String(data.BytesUsed) + ")"
 10318  		}
 10319  	default:
 10320  		{
 10321  			return "<unexpected>"
 10322  		}
 10323  	}
 10324  }
 10325  
 10326  func (_this UpdateUsageMetadataInput) Equals(other UpdateUsageMetadataInput) bool {
 10327  	switch data1 := _this.Get_().(type) {
 10328  	case UpdateUsageMetadataInput_UpdateUsageMetadataInput:
 10329  		{
 10330  			data2, ok := other.Get_().(UpdateUsageMetadataInput_UpdateUsageMetadataInput)
 10331  			return ok && data1.Identifier.Equals(data2.Identifier) && data1.BytesUsed == data2.BytesUsed
 10332  		}
 10333  	default:
 10334  		{
 10335  			return false // unexpected
 10336  		}
 10337  	}
 10338  }
 10339  
 10340  func (_this UpdateUsageMetadataInput) EqualsGeneric(other interface{}) bool {
 10341  	typed, ok := other.(UpdateUsageMetadataInput)
 10342  	return ok && _this.Equals(typed)
 10343  }
 10344  
 10345  func Type_UpdateUsageMetadataInput_() _dafny.TypeDescriptor {
 10346  	return type_UpdateUsageMetadataInput_{}
 10347  }
 10348  
 10349  type type_UpdateUsageMetadataInput_ struct {
 10350  }
 10351  
 10352  func (_this type_UpdateUsageMetadataInput_) Default() interface{} {
 10353  	return Companion_UpdateUsageMetadataInput_.Default()
 10354  }
 10355  
 10356  func (_this type_UpdateUsageMetadataInput_) String() string {
 10357  	return "AwsCryptographyMaterialProvidersTypes.UpdateUsageMetadataInput"
 10358  }
 10359  func (_this UpdateUsageMetadataInput) ParentTraits_() []*_dafny.TraitID {
 10360  	return [](*_dafny.TraitID){}
 10361  }
 10362  
 10363  var _ _dafny.TraitOffspring = UpdateUsageMetadataInput{}
 10364  
 10365  // End of datatype UpdateUsageMetadataInput
 10366  
 10367  // Definition of datatype ValidateCommitmentPolicyOnDecryptInput
 10368  type ValidateCommitmentPolicyOnDecryptInput struct {
 10369  	Data_ValidateCommitmentPolicyOnDecryptInput_
 10370  }
 10371  
 10372  func (_this ValidateCommitmentPolicyOnDecryptInput) Get_() Data_ValidateCommitmentPolicyOnDecryptInput_ {
 10373  	return _this.Data_ValidateCommitmentPolicyOnDecryptInput_
 10374  }
 10375  
 10376  type Data_ValidateCommitmentPolicyOnDecryptInput_ interface {
 10377  	isValidateCommitmentPolicyOnDecryptInput()
 10378  }
 10379  
 10380  type CompanionStruct_ValidateCommitmentPolicyOnDecryptInput_ struct {
 10381  }
 10382  
 10383  var Companion_ValidateCommitmentPolicyOnDecryptInput_ = CompanionStruct_ValidateCommitmentPolicyOnDecryptInput_{}
 10384  
 10385  type ValidateCommitmentPolicyOnDecryptInput_ValidateCommitmentPolicyOnDecryptInput struct {
 10386  	Algorithm        AlgorithmSuiteId
 10387  	CommitmentPolicy CommitmentPolicy
 10388  }
 10389  
 10390  func (ValidateCommitmentPolicyOnDecryptInput_ValidateCommitmentPolicyOnDecryptInput) isValidateCommitmentPolicyOnDecryptInput() {
 10391  }
 10392  
 10393  func (CompanionStruct_ValidateCommitmentPolicyOnDecryptInput_) Create_ValidateCommitmentPolicyOnDecryptInput_(Algorithm AlgorithmSuiteId, CommitmentPolicy CommitmentPolicy) ValidateCommitmentPolicyOnDecryptInput {
 10394  	return ValidateCommitmentPolicyOnDecryptInput{ValidateCommitmentPolicyOnDecryptInput_ValidateCommitmentPolicyOnDecryptInput{Algorithm, CommitmentPolicy}}
 10395  }
 10396  
 10397  func (_this ValidateCommitmentPolicyOnDecryptInput) Is_ValidateCommitmentPolicyOnDecryptInput() bool {
 10398  	_, ok := _this.Get_().(ValidateCommitmentPolicyOnDecryptInput_ValidateCommitmentPolicyOnDecryptInput)
 10399  	return ok
 10400  }
 10401  
 10402  func (CompanionStruct_ValidateCommitmentPolicyOnDecryptInput_) Default() ValidateCommitmentPolicyOnDecryptInput {
 10403  	return Companion_ValidateCommitmentPolicyOnDecryptInput_.Create_ValidateCommitmentPolicyOnDecryptInput_(Companion_AlgorithmSuiteId_.Default(), Companion_CommitmentPolicy_.Default())
 10404  }
 10405  
 10406  func (_this ValidateCommitmentPolicyOnDecryptInput) Dtor_algorithm() AlgorithmSuiteId {
 10407  	return _this.Get_().(ValidateCommitmentPolicyOnDecryptInput_ValidateCommitmentPolicyOnDecryptInput).Algorithm
 10408  }
 10409  
 10410  func (_this ValidateCommitmentPolicyOnDecryptInput) Dtor_commitmentPolicy() CommitmentPolicy {
 10411  	return _this.Get_().(ValidateCommitmentPolicyOnDecryptInput_ValidateCommitmentPolicyOnDecryptInput).CommitmentPolicy
 10412  }
 10413  
 10414  func (_this ValidateCommitmentPolicyOnDecryptInput) String() string {
 10415  	switch data := _this.Get_().(type) {
 10416  	case nil:
 10417  		return "null"
 10418  	case ValidateCommitmentPolicyOnDecryptInput_ValidateCommitmentPolicyOnDecryptInput:
 10419  		{
 10420  			return "AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnDecryptInput.ValidateCommitmentPolicyOnDecryptInput" + "(" + _dafny.String(data.Algorithm) + ", " + _dafny.String(data.CommitmentPolicy) + ")"
 10421  		}
 10422  	default:
 10423  		{
 10424  			return "<unexpected>"
 10425  		}
 10426  	}
 10427  }
 10428  
 10429  func (_this ValidateCommitmentPolicyOnDecryptInput) Equals(other ValidateCommitmentPolicyOnDecryptInput) bool {
 10430  	switch data1 := _this.Get_().(type) {
 10431  	case ValidateCommitmentPolicyOnDecryptInput_ValidateCommitmentPolicyOnDecryptInput:
 10432  		{
 10433  			data2, ok := other.Get_().(ValidateCommitmentPolicyOnDecryptInput_ValidateCommitmentPolicyOnDecryptInput)
 10434  			return ok && data1.Algorithm.Equals(data2.Algorithm) && data1.CommitmentPolicy.Equals(data2.CommitmentPolicy)
 10435  		}
 10436  	default:
 10437  		{
 10438  			return false // unexpected
 10439  		}
 10440  	}
 10441  }
 10442  
 10443  func (_this ValidateCommitmentPolicyOnDecryptInput) EqualsGeneric(other interface{}) bool {
 10444  	typed, ok := other.(ValidateCommitmentPolicyOnDecryptInput)
 10445  	return ok && _this.Equals(typed)
 10446  }
 10447  
 10448  func Type_ValidateCommitmentPolicyOnDecryptInput_() _dafny.TypeDescriptor {
 10449  	return type_ValidateCommitmentPolicyOnDecryptInput_{}
 10450  }
 10451  
 10452  type type_ValidateCommitmentPolicyOnDecryptInput_ struct {
 10453  }
 10454  
 10455  func (_this type_ValidateCommitmentPolicyOnDecryptInput_) Default() interface{} {
 10456  	return Companion_ValidateCommitmentPolicyOnDecryptInput_.Default()
 10457  }
 10458  
 10459  func (_this type_ValidateCommitmentPolicyOnDecryptInput_) String() string {
 10460  	return "AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnDecryptInput"
 10461  }
 10462  func (_this ValidateCommitmentPolicyOnDecryptInput) ParentTraits_() []*_dafny.TraitID {
 10463  	return [](*_dafny.TraitID){}
 10464  }
 10465  
 10466  var _ _dafny.TraitOffspring = ValidateCommitmentPolicyOnDecryptInput{}
 10467  
 10468  // End of datatype ValidateCommitmentPolicyOnDecryptInput
 10469  
 10470  // Definition of datatype ValidateCommitmentPolicyOnEncryptInput
 10471  type ValidateCommitmentPolicyOnEncryptInput struct {
 10472  	Data_ValidateCommitmentPolicyOnEncryptInput_
 10473  }
 10474  
 10475  func (_this ValidateCommitmentPolicyOnEncryptInput) Get_() Data_ValidateCommitmentPolicyOnEncryptInput_ {
 10476  	return _this.Data_ValidateCommitmentPolicyOnEncryptInput_
 10477  }
 10478  
 10479  type Data_ValidateCommitmentPolicyOnEncryptInput_ interface {
 10480  	isValidateCommitmentPolicyOnEncryptInput()
 10481  }
 10482  
 10483  type CompanionStruct_ValidateCommitmentPolicyOnEncryptInput_ struct {
 10484  }
 10485  
 10486  var Companion_ValidateCommitmentPolicyOnEncryptInput_ = CompanionStruct_ValidateCommitmentPolicyOnEncryptInput_{}
 10487  
 10488  type ValidateCommitmentPolicyOnEncryptInput_ValidateCommitmentPolicyOnEncryptInput struct {
 10489  	Algorithm        AlgorithmSuiteId
 10490  	CommitmentPolicy CommitmentPolicy
 10491  }
 10492  
 10493  func (ValidateCommitmentPolicyOnEncryptInput_ValidateCommitmentPolicyOnEncryptInput) isValidateCommitmentPolicyOnEncryptInput() {
 10494  }
 10495  
 10496  func (CompanionStruct_ValidateCommitmentPolicyOnEncryptInput_) Create_ValidateCommitmentPolicyOnEncryptInput_(Algorithm AlgorithmSuiteId, CommitmentPolicy CommitmentPolicy) ValidateCommitmentPolicyOnEncryptInput {
 10497  	return ValidateCommitmentPolicyOnEncryptInput{ValidateCommitmentPolicyOnEncryptInput_ValidateCommitmentPolicyOnEncryptInput{Algorithm, CommitmentPolicy}}
 10498  }
 10499  
 10500  func (_this ValidateCommitmentPolicyOnEncryptInput) Is_ValidateCommitmentPolicyOnEncryptInput() bool {
 10501  	_, ok := _this.Get_().(ValidateCommitmentPolicyOnEncryptInput_ValidateCommitmentPolicyOnEncryptInput)
 10502  	return ok
 10503  }
 10504  
 10505  func (CompanionStruct_ValidateCommitmentPolicyOnEncryptInput_) Default() ValidateCommitmentPolicyOnEncryptInput {
 10506  	return Companion_ValidateCommitmentPolicyOnEncryptInput_.Create_ValidateCommitmentPolicyOnEncryptInput_(Companion_AlgorithmSuiteId_.Default(), Companion_CommitmentPolicy_.Default())
 10507  }
 10508  
 10509  func (_this ValidateCommitmentPolicyOnEncryptInput) Dtor_algorithm() AlgorithmSuiteId {
 10510  	return _this.Get_().(ValidateCommitmentPolicyOnEncryptInput_ValidateCommitmentPolicyOnEncryptInput).Algorithm
 10511  }
 10512  
 10513  func (_this ValidateCommitmentPolicyOnEncryptInput) Dtor_commitmentPolicy() CommitmentPolicy {
 10514  	return _this.Get_().(ValidateCommitmentPolicyOnEncryptInput_ValidateCommitmentPolicyOnEncryptInput).CommitmentPolicy
 10515  }
 10516  
 10517  func (_this ValidateCommitmentPolicyOnEncryptInput) String() string {
 10518  	switch data := _this.Get_().(type) {
 10519  	case nil:
 10520  		return "null"
 10521  	case ValidateCommitmentPolicyOnEncryptInput_ValidateCommitmentPolicyOnEncryptInput:
 10522  		{
 10523  			return "AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnEncryptInput.ValidateCommitmentPolicyOnEncryptInput" + "(" + _dafny.String(data.Algorithm) + ", " + _dafny.String(data.CommitmentPolicy) + ")"
 10524  		}
 10525  	default:
 10526  		{
 10527  			return "<unexpected>"
 10528  		}
 10529  	}
 10530  }
 10531  
 10532  func (_this ValidateCommitmentPolicyOnEncryptInput) Equals(other ValidateCommitmentPolicyOnEncryptInput) bool {
 10533  	switch data1 := _this.Get_().(type) {
 10534  	case ValidateCommitmentPolicyOnEncryptInput_ValidateCommitmentPolicyOnEncryptInput:
 10535  		{
 10536  			data2, ok := other.Get_().(ValidateCommitmentPolicyOnEncryptInput_ValidateCommitmentPolicyOnEncryptInput)
 10537  			return ok && data1.Algorithm.Equals(data2.Algorithm) && data1.CommitmentPolicy.Equals(data2.CommitmentPolicy)
 10538  		}
 10539  	default:
 10540  		{
 10541  			return false // unexpected
 10542  		}
 10543  	}
 10544  }
 10545  
 10546  func (_this ValidateCommitmentPolicyOnEncryptInput) EqualsGeneric(other interface{}) bool {
 10547  	typed, ok := other.(ValidateCommitmentPolicyOnEncryptInput)
 10548  	return ok && _this.Equals(typed)
 10549  }
 10550  
 10551  func Type_ValidateCommitmentPolicyOnEncryptInput_() _dafny.TypeDescriptor {
 10552  	return type_ValidateCommitmentPolicyOnEncryptInput_{}
 10553  }
 10554  
 10555  type type_ValidateCommitmentPolicyOnEncryptInput_ struct {
 10556  }
 10557  
 10558  func (_this type_ValidateCommitmentPolicyOnEncryptInput_) Default() interface{} {
 10559  	return Companion_ValidateCommitmentPolicyOnEncryptInput_.Default()
 10560  }
 10561  
 10562  func (_this type_ValidateCommitmentPolicyOnEncryptInput_) String() string {
 10563  	return "AwsCryptographyMaterialProvidersTypes.ValidateCommitmentPolicyOnEncryptInput"
 10564  }
 10565  func (_this ValidateCommitmentPolicyOnEncryptInput) ParentTraits_() []*_dafny.TraitID {
 10566  	return [](*_dafny.TraitID){}
 10567  }
 10568  
 10569  var _ _dafny.TraitOffspring = ValidateCommitmentPolicyOnEncryptInput{}
 10570  
 10571  // End of datatype ValidateCommitmentPolicyOnEncryptInput
 10572  
 10573  // Definition of datatype ValidDecryptionMaterialsTransitionInput
 10574  type ValidDecryptionMaterialsTransitionInput struct {
 10575  	Data_ValidDecryptionMaterialsTransitionInput_
 10576  }
 10577  
 10578  func (_this ValidDecryptionMaterialsTransitionInput) Get_() Data_ValidDecryptionMaterialsTransitionInput_ {
 10579  	return _this.Data_ValidDecryptionMaterialsTransitionInput_
 10580  }
 10581  
 10582  type Data_ValidDecryptionMaterialsTransitionInput_ interface {
 10583  	isValidDecryptionMaterialsTransitionInput()
 10584  }
 10585  
 10586  type CompanionStruct_ValidDecryptionMaterialsTransitionInput_ struct {
 10587  }
 10588  
 10589  var Companion_ValidDecryptionMaterialsTransitionInput_ = CompanionStruct_ValidDecryptionMaterialsTransitionInput_{}
 10590  
 10591  type ValidDecryptionMaterialsTransitionInput_ValidDecryptionMaterialsTransitionInput struct {
 10592  	Start DecryptionMaterials
 10593  	Stop  DecryptionMaterials
 10594  }
 10595  
 10596  func (ValidDecryptionMaterialsTransitionInput_ValidDecryptionMaterialsTransitionInput) isValidDecryptionMaterialsTransitionInput() {
 10597  }
 10598  
 10599  func (CompanionStruct_ValidDecryptionMaterialsTransitionInput_) Create_ValidDecryptionMaterialsTransitionInput_(Start DecryptionMaterials, Stop DecryptionMaterials) ValidDecryptionMaterialsTransitionInput {
 10600  	return ValidDecryptionMaterialsTransitionInput{ValidDecryptionMaterialsTransitionInput_ValidDecryptionMaterialsTransitionInput{Start, Stop}}
 10601  }
 10602  
 10603  func (_this ValidDecryptionMaterialsTransitionInput) Is_ValidDecryptionMaterialsTransitionInput() bool {
 10604  	_, ok := _this.Get_().(ValidDecryptionMaterialsTransitionInput_ValidDecryptionMaterialsTransitionInput)
 10605  	return ok
 10606  }
 10607  
 10608  func (CompanionStruct_ValidDecryptionMaterialsTransitionInput_) Default() ValidDecryptionMaterialsTransitionInput {
 10609  	return Companion_ValidDecryptionMaterialsTransitionInput_.Create_ValidDecryptionMaterialsTransitionInput_(Companion_DecryptionMaterials_.Default(), Companion_DecryptionMaterials_.Default())
 10610  }
 10611  
 10612  func (_this ValidDecryptionMaterialsTransitionInput) Dtor_start() DecryptionMaterials {
 10613  	return _this.Get_().(ValidDecryptionMaterialsTransitionInput_ValidDecryptionMaterialsTransitionInput).Start
 10614  }
 10615  
 10616  func (_this ValidDecryptionMaterialsTransitionInput) Dtor_stop() DecryptionMaterials {
 10617  	return _this.Get_().(ValidDecryptionMaterialsTransitionInput_ValidDecryptionMaterialsTransitionInput).Stop
 10618  }
 10619  
 10620  func (_this ValidDecryptionMaterialsTransitionInput) String() string {
 10621  	switch data := _this.Get_().(type) {
 10622  	case nil:
 10623  		return "null"
 10624  	case ValidDecryptionMaterialsTransitionInput_ValidDecryptionMaterialsTransitionInput:
 10625  		{
 10626  			return "AwsCryptographyMaterialProvidersTypes.ValidDecryptionMaterialsTransitionInput.ValidDecryptionMaterialsTransitionInput" + "(" + _dafny.String(data.Start) + ", " + _dafny.String(data.Stop) + ")"
 10627  		}
 10628  	default:
 10629  		{
 10630  			return "<unexpected>"
 10631  		}
 10632  	}
 10633  }
 10634  
 10635  func (_this ValidDecryptionMaterialsTransitionInput) Equals(other ValidDecryptionMaterialsTransitionInput) bool {
 10636  	switch data1 := _this.Get_().(type) {
 10637  	case ValidDecryptionMaterialsTransitionInput_ValidDecryptionMaterialsTransitionInput:
 10638  		{
 10639  			data2, ok := other.Get_().(ValidDecryptionMaterialsTransitionInput_ValidDecryptionMaterialsTransitionInput)
 10640  			return ok && data1.Start.Equals(data2.Start) && data1.Stop.Equals(data2.Stop)
 10641  		}
 10642  	default:
 10643  		{
 10644  			return false // unexpected
 10645  		}
 10646  	}
 10647  }
 10648  
 10649  func (_this ValidDecryptionMaterialsTransitionInput) EqualsGeneric(other interface{}) bool {
 10650  	typed, ok := other.(ValidDecryptionMaterialsTransitionInput)
 10651  	return ok && _this.Equals(typed)
 10652  }
 10653  
 10654  func Type_ValidDecryptionMaterialsTransitionInput_() _dafny.TypeDescriptor {
 10655  	return type_ValidDecryptionMaterialsTransitionInput_{}
 10656  }
 10657  
 10658  type type_ValidDecryptionMaterialsTransitionInput_ struct {
 10659  }
 10660  
 10661  func (_this type_ValidDecryptionMaterialsTransitionInput_) Default() interface{} {
 10662  	return Companion_ValidDecryptionMaterialsTransitionInput_.Default()
 10663  }
 10664  
 10665  func (_this type_ValidDecryptionMaterialsTransitionInput_) String() string {
 10666  	return "AwsCryptographyMaterialProvidersTypes.ValidDecryptionMaterialsTransitionInput"
 10667  }
 10668  func (_this ValidDecryptionMaterialsTransitionInput) ParentTraits_() []*_dafny.TraitID {
 10669  	return [](*_dafny.TraitID){}
 10670  }
 10671  
 10672  var _ _dafny.TraitOffspring = ValidDecryptionMaterialsTransitionInput{}
 10673  
 10674  // End of datatype ValidDecryptionMaterialsTransitionInput
 10675  
 10676  // Definition of datatype ValidEncryptionMaterialsTransitionInput
 10677  type ValidEncryptionMaterialsTransitionInput struct {
 10678  	Data_ValidEncryptionMaterialsTransitionInput_
 10679  }
 10680  
 10681  func (_this ValidEncryptionMaterialsTransitionInput) Get_() Data_ValidEncryptionMaterialsTransitionInput_ {
 10682  	return _this.Data_ValidEncryptionMaterialsTransitionInput_
 10683  }
 10684  
 10685  type Data_ValidEncryptionMaterialsTransitionInput_ interface {
 10686  	isValidEncryptionMaterialsTransitionInput()
 10687  }
 10688  
 10689  type CompanionStruct_ValidEncryptionMaterialsTransitionInput_ struct {
 10690  }
 10691  
 10692  var Companion_ValidEncryptionMaterialsTransitionInput_ = CompanionStruct_ValidEncryptionMaterialsTransitionInput_{}
 10693  
 10694  type ValidEncryptionMaterialsTransitionInput_ValidEncryptionMaterialsTransitionInput struct {
 10695  	Start EncryptionMaterials
 10696  	Stop  EncryptionMaterials
 10697  }
 10698  
 10699  func (ValidEncryptionMaterialsTransitionInput_ValidEncryptionMaterialsTransitionInput) isValidEncryptionMaterialsTransitionInput() {
 10700  }
 10701  
 10702  func (CompanionStruct_ValidEncryptionMaterialsTransitionInput_) Create_ValidEncryptionMaterialsTransitionInput_(Start EncryptionMaterials, Stop EncryptionMaterials) ValidEncryptionMaterialsTransitionInput {
 10703  	return ValidEncryptionMaterialsTransitionInput{ValidEncryptionMaterialsTransitionInput_ValidEncryptionMaterialsTransitionInput{Start, Stop}}
 10704  }
 10705  
 10706  func (_this ValidEncryptionMaterialsTransitionInput) Is_ValidEncryptionMaterialsTransitionInput() bool {
 10707  	_, ok := _this.Get_().(ValidEncryptionMaterialsTransitionInput_ValidEncryptionMaterialsTransitionInput)
 10708  	return ok
 10709  }
 10710  
 10711  func (CompanionStruct_ValidEncryptionMaterialsTransitionInput_) Default() ValidEncryptionMaterialsTransitionInput {
 10712  	return Companion_ValidEncryptionMaterialsTransitionInput_.Create_ValidEncryptionMaterialsTransitionInput_(Companion_EncryptionMaterials_.Default(), Companion_EncryptionMaterials_.Default())
 10713  }
 10714  
 10715  func (_this ValidEncryptionMaterialsTransitionInput) Dtor_start() EncryptionMaterials {
 10716  	return _this.Get_().(ValidEncryptionMaterialsTransitionInput_ValidEncryptionMaterialsTransitionInput).Start
 10717  }
 10718  
 10719  func (_this ValidEncryptionMaterialsTransitionInput) Dtor_stop() EncryptionMaterials {
 10720  	return _this.Get_().(ValidEncryptionMaterialsTransitionInput_ValidEncryptionMaterialsTransitionInput).Stop
 10721  }
 10722  
 10723  func (_this ValidEncryptionMaterialsTransitionInput) String() string {
 10724  	switch data := _this.Get_().(type) {
 10725  	case nil:
 10726  		return "null"
 10727  	case ValidEncryptionMaterialsTransitionInput_ValidEncryptionMaterialsTransitionInput:
 10728  		{
 10729  			return "AwsCryptographyMaterialProvidersTypes.ValidEncryptionMaterialsTransitionInput.ValidEncryptionMaterialsTransitionInput" + "(" + _dafny.String(data.Start) + ", " + _dafny.String(data.Stop) + ")"
 10730  		}
 10731  	default:
 10732  		{
 10733  			return "<unexpected>"
 10734  		}
 10735  	}
 10736  }
 10737  
 10738  func (_this ValidEncryptionMaterialsTransitionInput) Equals(other ValidEncryptionMaterialsTransitionInput) bool {
 10739  	switch data1 := _this.Get_().(type) {
 10740  	case ValidEncryptionMaterialsTransitionInput_ValidEncryptionMaterialsTransitionInput:
 10741  		{
 10742  			data2, ok := other.Get_().(ValidEncryptionMaterialsTransitionInput_ValidEncryptionMaterialsTransitionInput)
 10743  			return ok && data1.Start.Equals(data2.Start) && data1.Stop.Equals(data2.Stop)
 10744  		}
 10745  	default:
 10746  		{
 10747  			return false // unexpected
 10748  		}
 10749  	}
 10750  }
 10751  
 10752  func (_this ValidEncryptionMaterialsTransitionInput) EqualsGeneric(other interface{}) bool {
 10753  	typed, ok := other.(ValidEncryptionMaterialsTransitionInput)
 10754  	return ok && _this.Equals(typed)
 10755  }
 10756  
 10757  func Type_ValidEncryptionMaterialsTransitionInput_() _dafny.TypeDescriptor {
 10758  	return type_ValidEncryptionMaterialsTransitionInput_{}
 10759  }
 10760  
 10761  type type_ValidEncryptionMaterialsTransitionInput_ struct {
 10762  }
 10763  
 10764  func (_this type_ValidEncryptionMaterialsTransitionInput_) Default() interface{} {
 10765  	return Companion_ValidEncryptionMaterialsTransitionInput_.Default()
 10766  }
 10767  
 10768  func (_this type_ValidEncryptionMaterialsTransitionInput_) String() string {
 10769  	return "AwsCryptographyMaterialProvidersTypes.ValidEncryptionMaterialsTransitionInput"
 10770  }
 10771  func (_this ValidEncryptionMaterialsTransitionInput) ParentTraits_() []*_dafny.TraitID {
 10772  	return [](*_dafny.TraitID){}
 10773  }
 10774  
 10775  var _ _dafny.TraitOffspring = ValidEncryptionMaterialsTransitionInput{}
 10776  
 10777  // End of datatype ValidEncryptionMaterialsTransitionInput
 10778  
 10779  // Definition of datatype Error
 10780  type Error struct {
 10781  	Data_Error_
 10782  }
 10783  
 10784  func (_this Error) Get_() Data_Error_ {
 10785  	return _this.Data_Error_
 10786  }
 10787  
 10788  type Data_Error_ interface {
 10789  	isError()
 10790  }
 10791  
 10792  type CompanionStruct_Error_ struct {
 10793  }
 10794  
 10795  var Companion_Error_ = CompanionStruct_Error_{}
 10796  
 10797  type Error_AwsCryptographicMaterialProvidersException struct {
 10798  	Message _dafny.Sequence
 10799  }
 10800  
 10801  func (Error_AwsCryptographicMaterialProvidersException) isError() {}
 10802  
 10803  func (CompanionStruct_Error_) Create_AwsCryptographicMaterialProvidersException_(Message _dafny.Sequence) Error {
 10804  	return Error{Error_AwsCryptographicMaterialProvidersException{Message}}
 10805  }
 10806  
 10807  func (_this Error) Is_AwsCryptographicMaterialProvidersException() bool {
 10808  	_, ok := _this.Get_().(Error_AwsCryptographicMaterialProvidersException)
 10809  	return ok
 10810  }
 10811  
 10812  type Error_EntryAlreadyExists struct {
 10813  	Message _dafny.Sequence
 10814  }
 10815  
 10816  func (Error_EntryAlreadyExists) isError() {}
 10817  
 10818  func (CompanionStruct_Error_) Create_EntryAlreadyExists_(Message _dafny.Sequence) Error {
 10819  	return Error{Error_EntryAlreadyExists{Message}}
 10820  }
 10821  
 10822  func (_this Error) Is_EntryAlreadyExists() bool {
 10823  	_, ok := _this.Get_().(Error_EntryAlreadyExists)
 10824  	return ok
 10825  }
 10826  
 10827  type Error_EntryDoesNotExist struct {
 10828  	Message _dafny.Sequence
 10829  }
 10830  
 10831  func (Error_EntryDoesNotExist) isError() {}
 10832  
 10833  func (CompanionStruct_Error_) Create_EntryDoesNotExist_(Message _dafny.Sequence) Error {
 10834  	return Error{Error_EntryDoesNotExist{Message}}
 10835  }
 10836  
 10837  func (_this Error) Is_EntryDoesNotExist() bool {
 10838  	_, ok := _this.Get_().(Error_EntryDoesNotExist)
 10839  	return ok
 10840  }
 10841  
 10842  type Error_InFlightTTLExceeded struct {
 10843  	Message _dafny.Sequence
 10844  }
 10845  
 10846  func (Error_InFlightTTLExceeded) isError() {}
 10847  
 10848  func (CompanionStruct_Error_) Create_InFlightTTLExceeded_(Message _dafny.Sequence) Error {
 10849  	return Error{Error_InFlightTTLExceeded{Message}}
 10850  }
 10851  
 10852  func (_this Error) Is_InFlightTTLExceeded() bool {
 10853  	_, ok := _this.Get_().(Error_InFlightTTLExceeded)
 10854  	return ok
 10855  }
 10856  
 10857  type Error_InvalidAlgorithmSuiteInfo struct {
 10858  	Message _dafny.Sequence
 10859  }
 10860  
 10861  func (Error_InvalidAlgorithmSuiteInfo) isError() {}
 10862  
 10863  func (CompanionStruct_Error_) Create_InvalidAlgorithmSuiteInfo_(Message _dafny.Sequence) Error {
 10864  	return Error{Error_InvalidAlgorithmSuiteInfo{Message}}
 10865  }
 10866  
 10867  func (_this Error) Is_InvalidAlgorithmSuiteInfo() bool {
 10868  	_, ok := _this.Get_().(Error_InvalidAlgorithmSuiteInfo)
 10869  	return ok
 10870  }
 10871  
 10872  type Error_InvalidAlgorithmSuiteInfoOnDecrypt struct {
 10873  	Message _dafny.Sequence
 10874  }
 10875  
 10876  func (Error_InvalidAlgorithmSuiteInfoOnDecrypt) isError() {}
 10877  
 10878  func (CompanionStruct_Error_) Create_InvalidAlgorithmSuiteInfoOnDecrypt_(Message _dafny.Sequence) Error {
 10879  	return Error{Error_InvalidAlgorithmSuiteInfoOnDecrypt{Message}}
 10880  }
 10881  
 10882  func (_this Error) Is_InvalidAlgorithmSuiteInfoOnDecrypt() bool {
 10883  	_, ok := _this.Get_().(Error_InvalidAlgorithmSuiteInfoOnDecrypt)
 10884  	return ok
 10885  }
 10886  
 10887  type Error_InvalidAlgorithmSuiteInfoOnEncrypt struct {
 10888  	Message _dafny.Sequence
 10889  }
 10890  
 10891  func (Error_InvalidAlgorithmSuiteInfoOnEncrypt) isError() {}
 10892  
 10893  func (CompanionStruct_Error_) Create_InvalidAlgorithmSuiteInfoOnEncrypt_(Message _dafny.Sequence) Error {
 10894  	return Error{Error_InvalidAlgorithmSuiteInfoOnEncrypt{Message}}
 10895  }
 10896  
 10897  func (_this Error) Is_InvalidAlgorithmSuiteInfoOnEncrypt() bool {
 10898  	_, ok := _this.Get_().(Error_InvalidAlgorithmSuiteInfoOnEncrypt)
 10899  	return ok
 10900  }
 10901  
 10902  type Error_InvalidDecryptionMaterials struct {
 10903  	Message _dafny.Sequence
 10904  }
 10905  
 10906  func (Error_InvalidDecryptionMaterials) isError() {}
 10907  
 10908  func (CompanionStruct_Error_) Create_InvalidDecryptionMaterials_(Message _dafny.Sequence) Error {
 10909  	return Error{Error_InvalidDecryptionMaterials{Message}}
 10910  }
 10911  
 10912  func (_this Error) Is_InvalidDecryptionMaterials() bool {
 10913  	_, ok := _this.Get_().(Error_InvalidDecryptionMaterials)
 10914  	return ok
 10915  }
 10916  
 10917  type Error_InvalidDecryptionMaterialsTransition struct {
 10918  	Message _dafny.Sequence
 10919  }
 10920  
 10921  func (Error_InvalidDecryptionMaterialsTransition) isError() {}
 10922  
 10923  func (CompanionStruct_Error_) Create_InvalidDecryptionMaterialsTransition_(Message _dafny.Sequence) Error {
 10924  	return Error{Error_InvalidDecryptionMaterialsTransition{Message}}
 10925  }
 10926  
 10927  func (_this Error) Is_InvalidDecryptionMaterialsTransition() bool {
 10928  	_, ok := _this.Get_().(Error_InvalidDecryptionMaterialsTransition)
 10929  	return ok
 10930  }
 10931  
 10932  type Error_InvalidEncryptionMaterials struct {
 10933  	Message _dafny.Sequence
 10934  }
 10935  
 10936  func (Error_InvalidEncryptionMaterials) isError() {}
 10937  
 10938  func (CompanionStruct_Error_) Create_InvalidEncryptionMaterials_(Message _dafny.Sequence) Error {
 10939  	return Error{Error_InvalidEncryptionMaterials{Message}}
 10940  }
 10941  
 10942  func (_this Error) Is_InvalidEncryptionMaterials() bool {
 10943  	_, ok := _this.Get_().(Error_InvalidEncryptionMaterials)
 10944  	return ok
 10945  }
 10946  
 10947  type Error_InvalidEncryptionMaterialsTransition struct {
 10948  	Message _dafny.Sequence
 10949  }
 10950  
 10951  func (Error_InvalidEncryptionMaterialsTransition) isError() {}
 10952  
 10953  func (CompanionStruct_Error_) Create_InvalidEncryptionMaterialsTransition_(Message _dafny.Sequence) Error {
 10954  	return Error{Error_InvalidEncryptionMaterialsTransition{Message}}
 10955  }
 10956  
 10957  func (_this Error) Is_InvalidEncryptionMaterialsTransition() bool {
 10958  	_, ok := _this.Get_().(Error_InvalidEncryptionMaterialsTransition)
 10959  	return ok
 10960  }
 10961  
 10962  type Error_AwsCryptographyKeyStore struct {
 10963  	AwsCryptographyKeyStore m_AwsCryptographyKeyStoreTypes.Error
 10964  }
 10965  
 10966  func (Error_AwsCryptographyKeyStore) isError() {}
 10967  
 10968  func (CompanionStruct_Error_) Create_AwsCryptographyKeyStore_(AwsCryptographyKeyStore m_AwsCryptographyKeyStoreTypes.Error) Error {
 10969  	return Error{Error_AwsCryptographyKeyStore{AwsCryptographyKeyStore}}
 10970  }
 10971  
 10972  func (_this Error) Is_AwsCryptographyKeyStore() bool {
 10973  	_, ok := _this.Get_().(Error_AwsCryptographyKeyStore)
 10974  	return ok
 10975  }
 10976  
 10977  type Error_AwsCryptographyPrimitives struct {
 10978  	AwsCryptographyPrimitives m_AwsCryptographyPrimitivesTypes.Error
 10979  }
 10980  
 10981  func (Error_AwsCryptographyPrimitives) isError() {}
 10982  
 10983  func (CompanionStruct_Error_) Create_AwsCryptographyPrimitives_(AwsCryptographyPrimitives m_AwsCryptographyPrimitivesTypes.Error) Error {
 10984  	return Error{Error_AwsCryptographyPrimitives{AwsCryptographyPrimitives}}
 10985  }
 10986  
 10987  func (_this Error) Is_AwsCryptographyPrimitives() bool {
 10988  	_, ok := _this.Get_().(Error_AwsCryptographyPrimitives)
 10989  	return ok
 10990  }
 10991  
 10992  type Error_ComAmazonawsDynamodb struct {
 10993  	ComAmazonawsDynamodb m_ComAmazonawsDynamodbTypes.Error
 10994  }
 10995  
 10996  func (Error_ComAmazonawsDynamodb) isError() {}
 10997  
 10998  func (CompanionStruct_Error_) Create_ComAmazonawsDynamodb_(ComAmazonawsDynamodb m_ComAmazonawsDynamodbTypes.Error) Error {
 10999  	return Error{Error_ComAmazonawsDynamodb{ComAmazonawsDynamodb}}
 11000  }
 11001  
 11002  func (_this Error) Is_ComAmazonawsDynamodb() bool {
 11003  	_, ok := _this.Get_().(Error_ComAmazonawsDynamodb)
 11004  	return ok
 11005  }
 11006  
 11007  type Error_ComAmazonawsKms struct {
 11008  	ComAmazonawsKms m_ComAmazonawsKmsTypes.Error
 11009  }
 11010  
 11011  func (Error_ComAmazonawsKms) isError() {}
 11012  
 11013  func (CompanionStruct_Error_) Create_ComAmazonawsKms_(ComAmazonawsKms m_ComAmazonawsKmsTypes.Error) Error {
 11014  	return Error{Error_ComAmazonawsKms{ComAmazonawsKms}}
 11015  }
 11016  
 11017  func (_this Error) Is_ComAmazonawsKms() bool {
 11018  	_, ok := _this.Get_().(Error_ComAmazonawsKms)
 11019  	return ok
 11020  }
 11021  
 11022  type Error_CollectionOfErrors struct {
 11023  	List    _dafny.Sequence
 11024  	Message _dafny.Sequence
 11025  }
 11026  
 11027  func (Error_CollectionOfErrors) isError() {}
 11028  
 11029  func (CompanionStruct_Error_) Create_CollectionOfErrors_(List _dafny.Sequence, Message _dafny.Sequence) Error {
 11030  	return Error{Error_CollectionOfErrors{List, Message}}
 11031  }
 11032  
 11033  func (_this Error) Is_CollectionOfErrors() bool {
 11034  	_, ok := _this.Get_().(Error_CollectionOfErrors)
 11035  	return ok
 11036  }
 11037  
 11038  type Error_Opaque struct {
 11039  	Obj interface{}
 11040  }
 11041  
 11042  func (Error_Opaque) isError() {}
 11043  
 11044  func (CompanionStruct_Error_) Create_Opaque_(Obj interface{}) Error {
 11045  	return Error{Error_Opaque{Obj}}
 11046  }
 11047  
 11048  func (_this Error) Is_Opaque() bool {
 11049  	_, ok := _this.Get_().(Error_Opaque)
 11050  	return ok
 11051  }
 11052  
 11053  type Error_OpaqueWithText struct {
 11054  	Obj        interface{}
 11055  	ObjMessage _dafny.Sequence
 11056  }
 11057  
 11058  func (Error_OpaqueWithText) isError() {}
 11059  
 11060  func (CompanionStruct_Error_) Create_OpaqueWithText_(Obj interface{}, ObjMessage _dafny.Sequence) Error {
 11061  	return Error{Error_OpaqueWithText{Obj, ObjMessage}}
 11062  }
 11063  
 11064  func (_this Error) Is_OpaqueWithText() bool {
 11065  	_, ok := _this.Get_().(Error_OpaqueWithText)
 11066  	return ok
 11067  }
 11068  
 11069  func (CompanionStruct_Error_) Default() Error {
 11070  	return Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.EmptySeq.SetString())
 11071  }
 11072  
 11073  func (_this Error) Dtor_message() _dafny.Sequence {
 11074  	switch data := _this.Get_().(type) {
 11075  	case Error_AwsCryptographicMaterialProvidersException:
 11076  		return data.Message
 11077  	case Error_EntryAlreadyExists:
 11078  		return data.Message
 11079  	case Error_EntryDoesNotExist:
 11080  		return data.Message
 11081  	case Error_InFlightTTLExceeded:
 11082  		return data.Message
 11083  	case Error_InvalidAlgorithmSuiteInfo:
 11084  		return data.Message
 11085  	case Error_InvalidAlgorithmSuiteInfoOnDecrypt:
 11086  		return data.Message
 11087  	case Error_InvalidAlgorithmSuiteInfoOnEncrypt:
 11088  		return data.Message
 11089  	case Error_InvalidDecryptionMaterials:
 11090  		return data.Message
 11091  	case Error_InvalidDecryptionMaterialsTransition:
 11092  		return data.Message
 11093  	case Error_InvalidEncryptionMaterials:
 11094  		return data.Message
 11095  	case Error_InvalidEncryptionMaterialsTransition:
 11096  		return data.Message
 11097  	default:
 11098  		return data.(Error_CollectionOfErrors).Message
 11099  	}
 11100  }
 11101  
 11102  func (_this Error) Dtor_AwsCryptographyKeyStore() m_AwsCryptographyKeyStoreTypes.Error {
 11103  	return _this.Get_().(Error_AwsCryptographyKeyStore).AwsCryptographyKeyStore
 11104  }
 11105  
 11106  func (_this Error) Dtor_AwsCryptographyPrimitives() m_AwsCryptographyPrimitivesTypes.Error {
 11107  	return _this.Get_().(Error_AwsCryptographyPrimitives).AwsCryptographyPrimitives
 11108  }
 11109  
 11110  func (_this Error) Dtor_ComAmazonawsDynamodb() m_ComAmazonawsDynamodbTypes.Error {
 11111  	return _this.Get_().(Error_ComAmazonawsDynamodb).ComAmazonawsDynamodb
 11112  }
 11113  
 11114  func (_this Error) Dtor_ComAmazonawsKms() m_ComAmazonawsKmsTypes.Error {
 11115  	return _this.Get_().(Error_ComAmazonawsKms).ComAmazonawsKms
 11116  }
 11117  
 11118  func (_this Error) Dtor_list() _dafny.Sequence {
 11119  	return _this.Get_().(Error_CollectionOfErrors).List
 11120  }
 11121  
 11122  func (_this Error) Dtor_obj() interface{} {
 11123  	switch data := _this.Get_().(type) {
 11124  	case Error_Opaque:
 11125  		return data.Obj
 11126  	default:
 11127  		return data.(Error_OpaqueWithText).Obj
 11128  	}
 11129  }
 11130  
 11131  func (_this Error) Dtor_objMessage() _dafny.Sequence {
 11132  	return _this.Get_().(Error_OpaqueWithText).ObjMessage
 11133  }
 11134  
 11135  func (_this Error) String() string {
 11136  	switch data := _this.Get_().(type) {
 11137  	case nil:
 11138  		return "null"
 11139  	case Error_AwsCryptographicMaterialProvidersException:
 11140  		{
 11141  			return "AwsCryptographyMaterialProvidersTypes.Error.AwsCryptographicMaterialProvidersException" + "(" + _dafny.String(data.Message) + ")"
 11142  		}
 11143  	case Error_EntryAlreadyExists:
 11144  		{
 11145  			return "AwsCryptographyMaterialProvidersTypes.Error.EntryAlreadyExists" + "(" + _dafny.String(data.Message) + ")"
 11146  		}
 11147  	case Error_EntryDoesNotExist:
 11148  		{
 11149  			return "AwsCryptographyMaterialProvidersTypes.Error.EntryDoesNotExist" + "(" + _dafny.String(data.Message) + ")"
 11150  		}
 11151  	case Error_InFlightTTLExceeded:
 11152  		{
 11153  			return "AwsCryptographyMaterialProvidersTypes.Error.InFlightTTLExceeded" + "(" + _dafny.String(data.Message) + ")"
 11154  		}
 11155  	case Error_InvalidAlgorithmSuiteInfo:
 11156  		{
 11157  			return "AwsCryptographyMaterialProvidersTypes.Error.InvalidAlgorithmSuiteInfo" + "(" + _dafny.String(data.Message) + ")"
 11158  		}
 11159  	case Error_InvalidAlgorithmSuiteInfoOnDecrypt:
 11160  		{
 11161  			return "AwsCryptographyMaterialProvidersTypes.Error.InvalidAlgorithmSuiteInfoOnDecrypt" + "(" + _dafny.String(data.Message) + ")"
 11162  		}
 11163  	case Error_InvalidAlgorithmSuiteInfoOnEncrypt:
 11164  		{
 11165  			return "AwsCryptographyMaterialProvidersTypes.Error.InvalidAlgorithmSuiteInfoOnEncrypt" + "(" + _dafny.String(data.Message) + ")"
 11166  		}
 11167  	case Error_InvalidDecryptionMaterials:
 11168  		{
 11169  			return "AwsCryptographyMaterialProvidersTypes.Error.InvalidDecryptionMaterials" + "(" + _dafny.String(data.Message) + ")"
 11170  		}
 11171  	case Error_InvalidDecryptionMaterialsTransition:
 11172  		{
 11173  			return "AwsCryptographyMaterialProvidersTypes.Error.InvalidDecryptionMaterialsTransition" + "(" + _dafny.String(data.Message) + ")"
 11174  		}
 11175  	case Error_InvalidEncryptionMaterials:
 11176  		{
 11177  			return "AwsCryptographyMaterialProvidersTypes.Error.InvalidEncryptionMaterials" + "(" + _dafny.String(data.Message) + ")"
 11178  		}
 11179  	case Error_InvalidEncryptionMaterialsTransition:
 11180  		{
 11181  			return "AwsCryptographyMaterialProvidersTypes.Error.InvalidEncryptionMaterialsTransition" + "(" + _dafny.String(data.Message) + ")"
 11182  		}
 11183  	case Error_AwsCryptographyKeyStore:
 11184  		{
 11185  			return "AwsCryptographyMaterialProvidersTypes.Error.AwsCryptographyKeyStore" + "(" + _dafny.String(data.AwsCryptographyKeyStore) + ")"
 11186  		}
 11187  	case Error_AwsCryptographyPrimitives:
 11188  		{
 11189  			return "AwsCryptographyMaterialProvidersTypes.Error.AwsCryptographyPrimitives" + "(" + _dafny.String(data.AwsCryptographyPrimitives) + ")"
 11190  		}
 11191  	case Error_ComAmazonawsDynamodb:
 11192  		{
 11193  			return "AwsCryptographyMaterialProvidersTypes.Error.ComAmazonawsDynamodb" + "(" + _dafny.String(data.ComAmazonawsDynamodb) + ")"
 11194  		}
 11195  	case Error_ComAmazonawsKms:
 11196  		{
 11197  			return "AwsCryptographyMaterialProvidersTypes.Error.ComAmazonawsKms" + "(" + _dafny.String(data.ComAmazonawsKms) + ")"
 11198  		}
 11199  	case Error_CollectionOfErrors:
 11200  		{
 11201  			return "AwsCryptographyMaterialProvidersTypes.Error.CollectionOfErrors" + "(" + _dafny.String(data.List) + ", " + _dafny.String(data.Message) + ")"
 11202  		}
 11203  	case Error_Opaque:
 11204  		{
 11205  			return "AwsCryptographyMaterialProvidersTypes.Error.Opaque" + "(" + _dafny.String(data.Obj) + ")"
 11206  		}
 11207  	case Error_OpaqueWithText:
 11208  		{
 11209  			return "AwsCryptographyMaterialProvidersTypes.Error.OpaqueWithText" + "(" + _dafny.String(data.Obj) + ", " + _dafny.String(data.ObjMessage) + ")"
 11210  		}
 11211  	default:
 11212  		{
 11213  			return "<unexpected>"
 11214  		}
 11215  	}
 11216  }
 11217  
 11218  func (_this Error) Equals(other Error) bool {
 11219  	switch data1 := _this.Get_().(type) {
 11220  	case Error_AwsCryptographicMaterialProvidersException:
 11221  		{
 11222  			data2, ok := other.Get_().(Error_AwsCryptographicMaterialProvidersException)
 11223  			return ok && data1.Message.Equals(data2.Message)
 11224  		}
 11225  	case Error_EntryAlreadyExists:
 11226  		{
 11227  			data2, ok := other.Get_().(Error_EntryAlreadyExists)
 11228  			return ok && data1.Message.Equals(data2.Message)
 11229  		}
 11230  	case Error_EntryDoesNotExist:
 11231  		{
 11232  			data2, ok := other.Get_().(Error_EntryDoesNotExist)
 11233  			return ok && data1.Message.Equals(data2.Message)
 11234  		}
 11235  	case Error_InFlightTTLExceeded:
 11236  		{
 11237  			data2, ok := other.Get_().(Error_InFlightTTLExceeded)
 11238  			return ok && data1.Message.Equals(data2.Message)
 11239  		}
 11240  	case Error_InvalidAlgorithmSuiteInfo:
 11241  		{
 11242  			data2, ok := other.Get_().(Error_InvalidAlgorithmSuiteInfo)
 11243  			return ok && data1.Message.Equals(data2.Message)
 11244  		}
 11245  	case Error_InvalidAlgorithmSuiteInfoOnDecrypt:
 11246  		{
 11247  			data2, ok := other.Get_().(Error_InvalidAlgorithmSuiteInfoOnDecrypt)
 11248  			return ok && data1.Message.Equals(data2.Message)
 11249  		}
 11250  	case Error_InvalidAlgorithmSuiteInfoOnEncrypt:
 11251  		{
 11252  			data2, ok := other.Get_().(Error_InvalidAlgorithmSuiteInfoOnEncrypt)
 11253  			return ok && data1.Message.Equals(data2.Message)
 11254  		}
 11255  	case Error_InvalidDecryptionMaterials:
 11256  		{
 11257  			data2, ok := other.Get_().(Error_InvalidDecryptionMaterials)
 11258  			return ok && data1.Message.Equals(data2.Message)
 11259  		}
 11260  	case Error_InvalidDecryptionMaterialsTransition:
 11261  		{
 11262  			data2, ok := other.Get_().(Error_InvalidDecryptionMaterialsTransition)
 11263  			return ok && data1.Message.Equals(data2.Message)
 11264  		}
 11265  	case Error_InvalidEncryptionMaterials:
 11266  		{
 11267  			data2, ok := other.Get_().(Error_InvalidEncryptionMaterials)
 11268  			return ok && data1.Message.Equals(data2.Message)
 11269  		}
 11270  	case Error_InvalidEncryptionMaterialsTransition:
 11271  		{
 11272  			data2, ok := other.Get_().(Error_InvalidEncryptionMaterialsTransition)
 11273  			return ok && data1.Message.Equals(data2.Message)
 11274  		}
 11275  	case Error_AwsCryptographyKeyStore:
 11276  		{
 11277  			data2, ok := other.Get_().(Error_AwsCryptographyKeyStore)
 11278  			return ok && data1.AwsCryptographyKeyStore.Equals(data2.AwsCryptographyKeyStore)
 11279  		}
 11280  	case Error_AwsCryptographyPrimitives:
 11281  		{
 11282  			data2, ok := other.Get_().(Error_AwsCryptographyPrimitives)
 11283  			return ok && data1.AwsCryptographyPrimitives.Equals(data2.AwsCryptographyPrimitives)
 11284  		}
 11285  	case Error_ComAmazonawsDynamodb:
 11286  		{
 11287  			data2, ok := other.Get_().(Error_ComAmazonawsDynamodb)
 11288  			return ok && data1.ComAmazonawsDynamodb.Equals(data2.ComAmazonawsDynamodb)
 11289  		}
 11290  	case Error_ComAmazonawsKms:
 11291  		{
 11292  			data2, ok := other.Get_().(Error_ComAmazonawsKms)
 11293  			return ok && data1.ComAmazonawsKms.Equals(data2.ComAmazonawsKms)
 11294  		}
 11295  	case Error_CollectionOfErrors:
 11296  		{
 11297  			data2, ok := other.Get_().(Error_CollectionOfErrors)
 11298  			return ok && data1.List.Equals(data2.List) && data1.Message.Equals(data2.Message)
 11299  		}
 11300  	case Error_Opaque:
 11301  		{
 11302  			data2, ok := other.Get_().(Error_Opaque)
 11303  			return ok && _dafny.AreEqual(data1.Obj, data2.Obj)
 11304  		}
 11305  	case Error_OpaqueWithText:
 11306  		{
 11307  			data2, ok := other.Get_().(Error_OpaqueWithText)
 11308  			return ok && _dafny.AreEqual(data1.Obj, data2.Obj) && data1.ObjMessage.Equals(data2.ObjMessage)
 11309  		}
 11310  	default:
 11311  		{
 11312  			return false // unexpected
 11313  		}
 11314  	}
 11315  }
 11316  
 11317  func (_this Error) EqualsGeneric(other interface{}) bool {
 11318  	typed, ok := other.(Error)
 11319  	return ok && _this.Equals(typed)
 11320  }
 11321  
 11322  func Type_Error_() _dafny.TypeDescriptor {
 11323  	return type_Error_{}
 11324  }
 11325  
 11326  type type_Error_ struct {
 11327  }
 11328  
 11329  func (_this type_Error_) Default() interface{} {
 11330  	return Companion_Error_.Default()
 11331  }
 11332  
 11333  func (_this type_Error_) String() string {
 11334  	return "AwsCryptographyMaterialProvidersTypes.Error"
 11335  }
 11336  func (_this Error) ParentTraits_() []*_dafny.TraitID {
 11337  	return [](*_dafny.TraitID){}
 11338  }
 11339  
 11340  var _ _dafny.TraitOffspring = Error{}
 11341  
 11342  // End of datatype Error
 11343  
 11344  // Definition of class OpaqueError
 11345  type OpaqueError struct {
 11346  }
 11347  
 11348  func New_OpaqueError_() *OpaqueError {
 11349  	_this := OpaqueError{}
 11350  
 11351  	return &_this
 11352  }
 11353  
 11354  type CompanionStruct_OpaqueError_ struct {
 11355  }
 11356  
 11357  var Companion_OpaqueError_ = CompanionStruct_OpaqueError_{}
 11358  
 11359  func (*OpaqueError) String() string {
 11360  	return "AwsCryptographyMaterialProvidersTypes.OpaqueError"
 11361  }
 11362  
 11363  // End of class OpaqueError
 11364  
 11365  func Type_OpaqueError_() _dafny.TypeDescriptor {
 11366  	return type_OpaqueError_{}
 11367  }
 11368  
 11369  type type_OpaqueError_ struct {
 11370  }
 11371  
 11372  func (_this type_OpaqueError_) Default() interface{} {
 11373  	return Companion_Error_.Default()
 11374  }
 11375  
 11376  func (_this type_OpaqueError_) String() string {
 11377  	return "AwsCryptographyMaterialProvidersTypes.OpaqueError"
 11378  }
 11379  func (_this *CompanionStruct_OpaqueError_) Is_(__source Error) bool {
 11380  	var _2_e Error = (__source)
 11381  	_ = _2_e
 11382  	return ((_2_e).Is_Opaque()) || ((_2_e).Is_OpaqueWithText())
 11383  }
 11384  
 11385  // Definition of class DummySubsetType
 11386  type DummySubsetType struct {
 11387  }
 11388  
 11389  func New_DummySubsetType_() *DummySubsetType {
 11390  	_this := DummySubsetType{}
 11391  
 11392  	return &_this
 11393  }
 11394  
 11395  type CompanionStruct_DummySubsetType_ struct {
 11396  }
 11397  
 11398  var Companion_DummySubsetType_ = CompanionStruct_DummySubsetType_{}
 11399  
 11400  func (*DummySubsetType) String() string {
 11401  	return "AwsCryptographyMaterialProvidersTypes.DummySubsetType"
 11402  }
 11403  func (_this *CompanionStruct_DummySubsetType_) Witness() _dafny.Int {
 11404  	return _dafny.One
 11405  }
 11406  
 11407  // End of class DummySubsetType
 11408  
 11409  func Type_DummySubsetType_() _dafny.TypeDescriptor {
 11410  	return type_DummySubsetType_{}
 11411  }
 11412  
 11413  type type_DummySubsetType_ struct {
 11414  }
 11415  
 11416  func (_this type_DummySubsetType_) Default() interface{} {
 11417  	return Companion_DummySubsetType_.Witness()
 11418  }
 11419  
 11420  func (_this type_DummySubsetType_) String() string {
 11421  	return "AwsCryptographyMaterialProvidersTypes.DummySubsetType"
 11422  }
 11423  func (_this *CompanionStruct_DummySubsetType_) Is_(__source _dafny.Int) bool {
 11424  	var _3_x _dafny.Int = (__source)
 11425  	_ = _3_x
 11426  	return Companion_Default___.IsDummySubsetType(_3_x)
 11427  }