github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl@v0.2.0/AwsArnParsing/AwsArnParsing.go (about) 1 // Package AwsArnParsing 2 // Dafny module AwsArnParsing compiled into Go 3 4 package AwsArnParsing 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_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes" 13 m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives" 14 m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations" 15 m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes" 16 m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest" 17 m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF" 18 m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr" 19 m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random" 20 m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF" 21 m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC" 22 m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" 23 m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" 24 m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" 25 m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" 26 m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" 27 m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" 28 m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" 29 m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" 30 m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" 31 m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" 32 m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" 33 m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" 34 m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" 35 m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" 36 m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" 37 m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" 38 m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" 39 m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" 40 m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" 41 m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" 42 m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" 43 m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" 44 m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" 45 m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" 46 m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" 47 m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" 48 m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" 49 m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" 50 m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" 51 m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" 52 m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" 53 m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8" 54 m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" 55 m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" 56 m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" 57 m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" 58 m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" 59 m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" 60 _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" 61 ) 62 63 var _ = os.Args 64 var _ _dafny.Dummy__ 65 var _ m__System.Dummy__ 66 var _ m_Wrappers.Dummy__ 67 var _ m_BoundedInts.Dummy__ 68 var _ m_StandardLibrary_UInt.Dummy__ 69 var _ m_StandardLibrary_Sequence.Dummy__ 70 var _ m_StandardLibrary_String.Dummy__ 71 var _ m_StandardLibrary.Dummy__ 72 var _ m_AwsCryptographyPrimitivesTypes.Dummy__ 73 var _ m_Random.Dummy__ 74 var _ m_Digest.Dummy__ 75 var _ m_WrappedHMAC.Dummy__ 76 var _ m_HKDF.Dummy__ 77 var _ m_WrappedHKDF.Dummy__ 78 var _ m_KdfCtr.Dummy__ 79 var _ m_AwsCryptographyPrimitivesOperations.Dummy__ 80 var _ m_AtomicPrimitives.Dummy__ 81 var _ m_ComAmazonawsDynamodbTypes.Dummy__ 82 var _ m_ComAmazonawsKmsTypes.Dummy__ 83 var _ m_Relations.Dummy__ 84 var _ m_Seq_MergeSort.Dummy__ 85 var _ m__Math.Dummy__ 86 var _ m_Seq.Dummy__ 87 var _ m__Unicode.Dummy__ 88 var _ m_Functions.Dummy__ 89 var _ m_Utf8EncodingForm.Dummy__ 90 var _ m_Utf16EncodingForm.Dummy__ 91 var _ m_UnicodeStrings.Dummy__ 92 var _ m_FileIO.Dummy__ 93 var _ m_GeneralInternals.Dummy__ 94 var _ m_MulInternalsNonlinear.Dummy__ 95 var _ m_MulInternals.Dummy__ 96 var _ m_Mul.Dummy__ 97 var _ m_ModInternalsNonlinear.Dummy__ 98 var _ m_DivInternalsNonlinear.Dummy__ 99 var _ m_ModInternals.Dummy__ 100 var _ m_DivInternals.Dummy__ 101 var _ m_DivMod.Dummy__ 102 var _ m_Power.Dummy__ 103 var _ m_Logarithm.Dummy__ 104 var _ m_StandardLibraryInterop.Dummy__ 105 var _ m_Streams.Dummy__ 106 var _ m_Sorting.Dummy__ 107 var _ m_HexStrings.Dummy__ 108 var _ m_GetOpt.Dummy__ 109 var _ m_FloatCompare.Dummy__ 110 var _ m_Base64.Dummy__ 111 var _ m_Base64Lemmas.Dummy__ 112 var _ m_Actions.Dummy__ 113 var _ m_AwsCryptographyKeyStoreTypes.Dummy__ 114 var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__ 115 116 type Dummy__ struct{} 117 118 // Definition of class Default__ 119 type Default__ struct { 120 dummy byte 121 } 122 123 func New_Default___() *Default__ { 124 _this := Default__{} 125 126 return &_this 127 } 128 129 type CompanionStruct_Default___ struct { 130 } 131 132 var Companion_Default___ = CompanionStruct_Default___{} 133 134 func (_this *Default__) Equals(other *Default__) bool { 135 return _this == other 136 } 137 138 func (_this *Default__) EqualsGeneric(x interface{}) bool { 139 other, ok := x.(*Default__) 140 return ok && _this.Equals(other) 141 } 142 143 func (*Default__) String() string { 144 return "AwsArnParsing.Default__" 145 } 146 func (_this *Default__) ParentTraits_() []*_dafny.TraitID { 147 return [](*_dafny.TraitID){} 148 } 149 150 var _ _dafny.TraitOffspring = &Default__{} 151 152 func (_static *CompanionStruct_Default___) ValidAwsKmsResource(resource AwsResource) bool { 153 return ((resource).Valid()) && ((_dafny.Companion_Sequence_.Equal((resource).Dtor_resourceType(), _dafny.SeqOfString("key"))) || (_dafny.Companion_Sequence_.Equal((resource).Dtor_resourceType(), _dafny.SeqOfString("alias")))) 154 } 155 func (_static *CompanionStruct_Default___) ValidAwsKmsArn(arn AwsArn) bool { 156 return (((arn).Valid()) && (_dafny.Companion_Sequence_.Equal((arn).Dtor_service(), _dafny.SeqOfString("kms")))) && (Companion_Default___.ValidAwsKmsResource((arn).Dtor_resource())) 157 } 158 func (_static *CompanionStruct_Default___) ParseAwsKmsRawResources(identifier _dafny.Sequence) m_Wrappers.Result { 159 var _0_info _dafny.Sequence = m_StandardLibrary.Companion_Default___.Split(identifier, _dafny.Char('/')) 160 _ = _0_info 161 var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(!_dafny.Companion_Sequence_.Equal((_0_info).Select(0).(_dafny.Sequence), _dafny.SeqOfString("key")), _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Malformed raw key id: "), identifier)) 162 _ = _1_valueOrError0 163 if (_1_valueOrError0).IsFailure() { 164 return (_1_valueOrError0).PropagateFailure() 165 } else if (_dafny.IntOfUint32((_0_info).Cardinality())).Cmp(_dafny.One) == 0 { 166 return Companion_Default___.ParseAwsKmsResources(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("key/"), identifier)) 167 } else { 168 return Companion_Default___.ParseAwsKmsResources(identifier) 169 } 170 } 171 func (_static *CompanionStruct_Default___) ParseAwsKmsResources(identifier _dafny.Sequence) m_Wrappers.Result { 172 var _0_info _dafny.Sequence = m_StandardLibrary.Companion_Default___.Split(identifier, _dafny.Char('/')) 173 _ = _0_info 174 var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_0_info).Cardinality())).Cmp(_dafny.One) > 0, _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Malformed resource: "), identifier)) 175 _ = _1_valueOrError0 176 if (_1_valueOrError0).IsFailure() { 177 return (_1_valueOrError0).PropagateFailure() 178 } else { 179 var _2_resourceType _dafny.Sequence = (_0_info).Select(0).(_dafny.Sequence) 180 _ = _2_resourceType 181 var _3_value _dafny.Sequence = m_StandardLibrary.Companion_Default___.Join((_0_info).Drop(1), _dafny.SeqOfString("/")) 182 _ = _3_value 183 var _4_resource AwsResource = Companion_AwsResource_.Create_AwsResource_(_2_resourceType, _3_value) 184 _ = _4_resource 185 var _5_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(Companion_Default___.ValidAwsKmsResource(_4_resource), _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Malformed resource: "), identifier)) 186 _ = _5_valueOrError1 187 if (_5_valueOrError1).IsFailure() { 188 return (_5_valueOrError1).PropagateFailure() 189 } else { 190 return m_Wrappers.Companion_Result_.Create_Success_(_4_resource) 191 } 192 } 193 } 194 func (_static *CompanionStruct_Default___) ValidAmazonDynamodbResource(resource AwsResource) bool { 195 return ((resource).Valid()) && (_dafny.Companion_Sequence_.Equal((resource).Dtor_resourceType(), _dafny.SeqOfString("table"))) 196 } 197 func (_static *CompanionStruct_Default___) ValidAmazonDynamodbArn(arn AwsArn) bool { 198 return (((arn).Valid()) && (_dafny.Companion_Sequence_.Equal((arn).Dtor_service(), _dafny.SeqOfString("dynamodb")))) && (Companion_Default___.ValidAmazonDynamodbResource((arn).Dtor_resource())) 199 } 200 func (_static *CompanionStruct_Default___) ParseAmazonDynamodbResources(identifier _dafny.Sequence) m_Wrappers.Result { 201 var _0_info m_Wrappers.Option = m_StandardLibrary.Companion_Default___.SplitOnce_q(identifier, _dafny.Char('/')) 202 _ = _0_info 203 var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_0_info).Is_Some(), _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Malformed resource: "), identifier)) 204 _ = _1_valueOrError0 205 if (_1_valueOrError0).IsFailure() { 206 return (_1_valueOrError0).PropagateFailure() 207 } else { 208 var _2_resourceType _dafny.Sequence = (*((_0_info).Dtor_value().(_dafny.Tuple)).IndexInt(0)).(_dafny.Sequence) 209 _ = _2_resourceType 210 var _3_value _dafny.Sequence = (*((_0_info).Dtor_value().(_dafny.Tuple)).IndexInt(1)).(_dafny.Sequence) 211 _ = _3_value 212 var _4_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_ComAmazonawsDynamodbTypes.Companion_Default___.IsValid__TableName(_3_value), _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Table Name invalid: "), identifier)) 213 _ = _4_valueOrError1 214 if (_4_valueOrError1).IsFailure() { 215 return (_4_valueOrError1).PropagateFailure() 216 } else { 217 var _5_resource AwsResource = Companion_AwsResource_.Create_AwsResource_(_2_resourceType, _3_value) 218 _ = _5_resource 219 var _6_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(Companion_Default___.ValidAmazonDynamodbResource(_5_resource), _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Malformed resource: "), identifier)) 220 _ = _6_valueOrError2 221 if (_6_valueOrError2).IsFailure() { 222 return (_6_valueOrError2).PropagateFailure() 223 } else { 224 return m_Wrappers.Companion_Result_.Create_Success_(_5_resource) 225 } 226 } 227 } 228 } 229 func (_static *CompanionStruct_Default___) ParseAwsKmsArn(identifier _dafny.Sequence) m_Wrappers.Result { 230 var _0_components _dafny.Sequence = m_StandardLibrary.Companion_Default___.Split(identifier, _dafny.Char(':')) 231 _ = _0_components 232 var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfInt64(6)).Cmp(_dafny.IntOfUint32((_0_components).Cardinality())) == 0, _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Malformed arn: "), identifier)) 233 _ = _1_valueOrError0 234 if (_1_valueOrError0).IsFailure() { 235 return (_1_valueOrError0).PropagateFailure() 236 } else { 237 var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.ParseAwsKmsResources((_0_components).Select(5).(_dafny.Sequence)) 238 _ = _2_valueOrError1 239 if (_2_valueOrError1).IsFailure() { 240 return (_2_valueOrError1).PropagateFailure() 241 } else { 242 var _3_resource AwsResource = (_2_valueOrError1).Extract().(AwsResource) 243 _ = _3_resource 244 var _4_arn AwsArn = Companion_AwsArn_.Create_AwsArn_((_0_components).Select(0).(_dafny.Sequence), (_0_components).Select(1).(_dafny.Sequence), (_0_components).Select(2).(_dafny.Sequence), (_0_components).Select(3).(_dafny.Sequence), (_0_components).Select(4).(_dafny.Sequence), _3_resource) 245 _ = _4_arn 246 var _5_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(Companion_Default___.ValidAwsKmsArn(_4_arn), _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Malformed Arn:"), identifier)) 247 _ = _5_valueOrError2 248 if (_5_valueOrError2).IsFailure() { 249 return (_5_valueOrError2).PropagateFailure() 250 } else { 251 return m_Wrappers.Companion_Result_.Create_Success_(_4_arn) 252 } 253 } 254 } 255 } 256 func (_static *CompanionStruct_Default___) ParseAmazonDynamodbTableArn(identifier _dafny.Sequence) m_Wrappers.Result { 257 var _0_components _dafny.Sequence = m_StandardLibrary.Companion_Default___.Split(identifier, _dafny.Char(':')) 258 _ = _0_components 259 var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfInt64(6)).Cmp(_dafny.IntOfUint32((_0_components).Cardinality())) == 0, _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Malformed arn: "), identifier)) 260 _ = _1_valueOrError0 261 if (_1_valueOrError0).IsFailure() { 262 return (_1_valueOrError0).PropagateFailure() 263 } else { 264 var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.ParseAmazonDynamodbResources((_0_components).Select(5).(_dafny.Sequence)) 265 _ = _2_valueOrError1 266 if (_2_valueOrError1).IsFailure() { 267 return (_2_valueOrError1).PropagateFailure() 268 } else { 269 var _3_resource AwsResource = (_2_valueOrError1).Extract().(AwsResource) 270 _ = _3_resource 271 var _4_arn AwsArn = Companion_AwsArn_.Create_AwsArn_((_0_components).Select(0).(_dafny.Sequence), (_0_components).Select(1).(_dafny.Sequence), (_0_components).Select(2).(_dafny.Sequence), (_0_components).Select(3).(_dafny.Sequence), (_0_components).Select(4).(_dafny.Sequence), _3_resource) 272 _ = _4_arn 273 var _5_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(Companion_Default___.ValidAmazonDynamodbArn(_4_arn), _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Malformed Arn:"), identifier)) 274 _ = _5_valueOrError2 275 if (_5_valueOrError2).IsFailure() { 276 return (_5_valueOrError2).PropagateFailure() 277 } else { 278 return m_Wrappers.Companion_Result_.Create_Success_(_4_arn) 279 } 280 } 281 } 282 } 283 func (_static *CompanionStruct_Default___) ParseAwsKmsIdentifier(identifier _dafny.Sequence) m_Wrappers.Result { 284 if _dafny.Companion_Sequence_.IsPrefixOf(_dafny.SeqOfString("arn:"), identifier) { 285 var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.ParseAwsKmsArn(identifier) 286 _ = _0_valueOrError0 287 if (_0_valueOrError0).IsFailure() { 288 return (_0_valueOrError0).PropagateFailure() 289 } else { 290 var _1_arn AwsArn = (_0_valueOrError0).Extract().(AwsArn) 291 _ = _1_arn 292 return m_Wrappers.Companion_Result_.Create_Success_(Companion_AwsKmsIdentifier_.Create_AwsKmsArnIdentifier_(_1_arn)) 293 } 294 } else { 295 var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.ParseAwsKmsRawResources(identifier) 296 _ = _2_valueOrError1 297 if (_2_valueOrError1).IsFailure() { 298 return (_2_valueOrError1).PropagateFailure() 299 } else { 300 var _3_r AwsResource = (_2_valueOrError1).Extract().(AwsResource) 301 _ = _3_r 302 return m_Wrappers.Companion_Result_.Create_Success_(Companion_AwsKmsIdentifier_.Create_AwsKmsRawResourceIdentifier_(_3_r)) 303 } 304 } 305 } 306 func (_static *CompanionStruct_Default___) ParseAmazonDynamodbTableName(identifier _dafny.Sequence) m_Wrappers.Result { 307 var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.ParseAmazonDynamodbTableArn(identifier) 308 _ = _0_valueOrError0 309 if (_0_valueOrError0).IsFailure() { 310 return (_0_valueOrError0).PropagateFailure() 311 } else { 312 var _1_arn AwsArn = (_0_valueOrError0).Extract().(AwsArn) 313 _ = _1_arn 314 var _2_tableArn AmazonDynamodbTableName = Companion_AmazonDynamodbTableName_.Create_AmazonDynamodbTableArn_(_1_arn) 315 _ = _2_tableArn 316 var _3_tableName _dafny.Sequence = (_2_tableArn).GetTableName() 317 _ = _3_tableName 318 return m_Wrappers.Companion_Result_.Create_Success_(_3_tableName) 319 } 320 } 321 func (_static *CompanionStruct_Default___) IsMultiRegionAwsKmsArn(arn AwsArn) bool { 322 return Companion_Default___.IsMultiRegionAwsKmsResource((arn).Dtor_resource()) 323 } 324 func (_static *CompanionStruct_Default___) IsMultiRegionAwsKmsIdentifier(identifier AwsKmsIdentifier) bool { 325 var _source0 AwsKmsIdentifier = identifier 326 _ = _source0 327 { 328 if _source0.Is_AwsKmsArnIdentifier() { 329 var _0_arn AwsArn = _source0.Get_().(AwsKmsIdentifier_AwsKmsArnIdentifier).A 330 _ = _0_arn 331 return Companion_Default___.IsMultiRegionAwsKmsArn(_0_arn) 332 } 333 } 334 { 335 var _1_r AwsResource = _source0.Get_().(AwsKmsIdentifier_AwsKmsRawResourceIdentifier).R 336 _ = _1_r 337 return Companion_Default___.IsMultiRegionAwsKmsResource(_1_r) 338 } 339 } 340 func (_static *CompanionStruct_Default___) IsMultiRegionAwsKmsResource(resource AwsResource) bool { 341 return (_dafny.Companion_Sequence_.Equal((resource).Dtor_resourceType(), _dafny.SeqOfString("key"))) && (_dafny.Companion_Sequence_.IsPrefixOf(_dafny.SeqOfString("mrk-"), (resource).Dtor_value())) 342 } 343 func (_static *CompanionStruct_Default___) GetRegion(identifier AwsKmsIdentifier) m_Wrappers.Option { 344 var _source0 AwsKmsIdentifier = identifier 345 _ = _source0 346 { 347 if _source0.Is_AwsKmsArnIdentifier() { 348 var _0_a AwsArn = _source0.Get_().(AwsKmsIdentifier_AwsKmsArnIdentifier).A 349 _ = _0_a 350 return m_Wrappers.Companion_Option_.Create_Some_((_0_a).Dtor_region()) 351 } 352 } 353 { 354 return m_Wrappers.Companion_Option_.Create_None_() 355 } 356 } 357 func (_static *CompanionStruct_Default___) IsAwsKmsIdentifierString(s _dafny.Sequence) m_Wrappers.Result { 358 var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_UTF8.Companion_Default___.IsASCIIString(s), _dafny.SeqOfString("Not a valid ASCII string.")) 359 _ = _0_valueOrError0 360 if (_0_valueOrError0).IsFailure() { 361 return (_0_valueOrError0).PropagateFailure() 362 } else { 363 var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((_dafny.IntOfUint32((s).Cardinality())).Sign() == 1) && ((_dafny.IntOfUint32((s).Cardinality())).Cmp(Companion_Default___.MAX__AWS__KMS__IDENTIFIER__LENGTH()) <= 0), _dafny.SeqOfString("Identifier exceeds maximum length.")) 364 _ = _1_valueOrError1 365 if (_1_valueOrError1).IsFailure() { 366 return (_1_valueOrError1).PropagateFailure() 367 } else { 368 return Companion_Default___.ParseAwsKmsIdentifier(s) 369 } 370 } 371 } 372 func (_static *CompanionStruct_Default___) Error(s _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error { 373 return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(s) 374 } 375 func (_static *CompanionStruct_Default___) ValidateDdbTableArn(tableArn _dafny.Sequence) m_Wrappers.Result { 376 var _0_valueOrError0 m_Wrappers.Result = (Companion_Default___.ParseAmazonDynamodbTableName(tableArn)).MapFailure(func(coer0 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} { 377 return func(arg0 interface{}) interface{} { 378 return coer0(arg0.(_dafny.Sequence)) 379 } 380 }(Companion_Default___.Error)) 381 _ = _0_valueOrError0 382 if (_0_valueOrError0).IsFailure() { 383 return (_0_valueOrError0).PropagateFailure() 384 } else { 385 var _1___v1 _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) 386 _ = _1___v1 387 var _2_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_UTF8.Companion_Default___.IsASCIIString(tableArn), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Table Arn is not ASCII"))) 388 _ = _2_valueOrError1 389 if (_2_valueOrError1).IsFailure() { 390 return (_2_valueOrError1).PropagateFailure() 391 } else { 392 var _3_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_ComAmazonawsDynamodbTypes.Companion_Default___.IsValid__TableName((Companion_Default___.ParseAmazonDynamodbTableName(tableArn)).Dtor_value().(_dafny.Sequence)), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Table Name is too long"))) 393 _ = _3_valueOrError2 394 if (_3_valueOrError2).IsFailure() { 395 return (_3_valueOrError2).PropagateFailure() 396 } else { 397 return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf()) 398 } 399 } 400 } 401 } 402 func (_static *CompanionStruct_Default___) MAX__AWS__KMS__IDENTIFIER__LENGTH() _dafny.Int { 403 return _dafny.IntOfInt64(2048) 404 } 405 406 // End of class Default__ 407 408 // Definition of datatype AwsResource 409 type AwsResource struct { 410 Data_AwsResource_ 411 } 412 413 func (_this AwsResource) Get_() Data_AwsResource_ { 414 return _this.Data_AwsResource_ 415 } 416 417 type Data_AwsResource_ interface { 418 isAwsResource() 419 } 420 421 type CompanionStruct_AwsResource_ struct { 422 } 423 424 var Companion_AwsResource_ = CompanionStruct_AwsResource_{} 425 426 type AwsResource_AwsResource struct { 427 ResourceType _dafny.Sequence 428 Value _dafny.Sequence 429 } 430 431 func (AwsResource_AwsResource) isAwsResource() {} 432 433 func (CompanionStruct_AwsResource_) Create_AwsResource_(ResourceType _dafny.Sequence, Value _dafny.Sequence) AwsResource { 434 return AwsResource{AwsResource_AwsResource{ResourceType, Value}} 435 } 436 437 func (_this AwsResource) Is_AwsResource() bool { 438 _, ok := _this.Get_().(AwsResource_AwsResource) 439 return ok 440 } 441 442 func (CompanionStruct_AwsResource_) Default() AwsResource { 443 return Companion_AwsResource_.Create_AwsResource_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString()) 444 } 445 446 func (_this AwsResource) Dtor_resourceType() _dafny.Sequence { 447 return _this.Get_().(AwsResource_AwsResource).ResourceType 448 } 449 450 func (_this AwsResource) Dtor_value() _dafny.Sequence { 451 return _this.Get_().(AwsResource_AwsResource).Value 452 } 453 454 func (_this AwsResource) String() string { 455 switch data := _this.Get_().(type) { 456 case nil: 457 return "null" 458 case AwsResource_AwsResource: 459 { 460 return "AwsArnParsing.AwsResource.AwsResource" + "(" + _dafny.String(data.ResourceType) + ", " + _dafny.String(data.Value) + ")" 461 } 462 default: 463 { 464 return "<unexpected>" 465 } 466 } 467 } 468 469 func (_this AwsResource) Equals(other AwsResource) bool { 470 switch data1 := _this.Get_().(type) { 471 case AwsResource_AwsResource: 472 { 473 data2, ok := other.Get_().(AwsResource_AwsResource) 474 return ok && data1.ResourceType.Equals(data2.ResourceType) && data1.Value.Equals(data2.Value) 475 } 476 default: 477 { 478 return false // unexpected 479 } 480 } 481 } 482 483 func (_this AwsResource) EqualsGeneric(other interface{}) bool { 484 typed, ok := other.(AwsResource) 485 return ok && _this.Equals(typed) 486 } 487 488 func Type_AwsResource_() _dafny.TypeDescriptor { 489 return type_AwsResource_{} 490 } 491 492 type type_AwsResource_ struct { 493 } 494 495 func (_this type_AwsResource_) Default() interface{} { 496 return Companion_AwsResource_.Default() 497 } 498 499 func (_this type_AwsResource_) String() string { 500 return "AwsArnParsing.AwsResource" 501 } 502 func (_this AwsResource) ParentTraits_() []*_dafny.TraitID { 503 return [](*_dafny.TraitID){} 504 } 505 506 var _ _dafny.TraitOffspring = AwsResource{} 507 508 func (_this AwsResource) Valid() bool { 509 { 510 return (true) && ((_dafny.IntOfUint32(((_this).Dtor_value()).Cardinality())).Sign() == 1) 511 } 512 } 513 func (_this AwsResource) ToString() _dafny.Sequence { 514 { 515 return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate((_this).Dtor_resourceType(), _dafny.SeqOfString("/")), (_this).Dtor_value()) 516 } 517 } 518 519 // End of datatype AwsResource 520 521 // Definition of datatype AwsArn 522 type AwsArn struct { 523 Data_AwsArn_ 524 } 525 526 func (_this AwsArn) Get_() Data_AwsArn_ { 527 return _this.Data_AwsArn_ 528 } 529 530 type Data_AwsArn_ interface { 531 isAwsArn() 532 } 533 534 type CompanionStruct_AwsArn_ struct { 535 } 536 537 var Companion_AwsArn_ = CompanionStruct_AwsArn_{} 538 539 type AwsArn_AwsArn struct { 540 ArnLiteral _dafny.Sequence 541 Partition _dafny.Sequence 542 Service _dafny.Sequence 543 Region _dafny.Sequence 544 Account _dafny.Sequence 545 Resource AwsResource 546 } 547 548 func (AwsArn_AwsArn) isAwsArn() {} 549 550 func (CompanionStruct_AwsArn_) Create_AwsArn_(ArnLiteral _dafny.Sequence, Partition _dafny.Sequence, Service _dafny.Sequence, Region _dafny.Sequence, Account _dafny.Sequence, Resource AwsResource) AwsArn { 551 return AwsArn{AwsArn_AwsArn{ArnLiteral, Partition, Service, Region, Account, Resource}} 552 } 553 554 func (_this AwsArn) Is_AwsArn() bool { 555 _, ok := _this.Get_().(AwsArn_AwsArn) 556 return ok 557 } 558 559 func (CompanionStruct_AwsArn_) Default() AwsArn { 560 return Companion_AwsArn_.Create_AwsArn_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), Companion_AwsResource_.Default()) 561 } 562 563 func (_this AwsArn) Dtor_arnLiteral() _dafny.Sequence { 564 return _this.Get_().(AwsArn_AwsArn).ArnLiteral 565 } 566 567 func (_this AwsArn) Dtor_partition() _dafny.Sequence { 568 return _this.Get_().(AwsArn_AwsArn).Partition 569 } 570 571 func (_this AwsArn) Dtor_service() _dafny.Sequence { 572 return _this.Get_().(AwsArn_AwsArn).Service 573 } 574 575 func (_this AwsArn) Dtor_region() _dafny.Sequence { 576 return _this.Get_().(AwsArn_AwsArn).Region 577 } 578 579 func (_this AwsArn) Dtor_account() _dafny.Sequence { 580 return _this.Get_().(AwsArn_AwsArn).Account 581 } 582 583 func (_this AwsArn) Dtor_resource() AwsResource { 584 return _this.Get_().(AwsArn_AwsArn).Resource 585 } 586 587 func (_this AwsArn) String() string { 588 switch data := _this.Get_().(type) { 589 case nil: 590 return "null" 591 case AwsArn_AwsArn: 592 { 593 return "AwsArnParsing.AwsArn.AwsArn" + "(" + _dafny.String(data.ArnLiteral) + ", " + _dafny.String(data.Partition) + ", " + _dafny.String(data.Service) + ", " + _dafny.String(data.Region) + ", " + _dafny.String(data.Account) + ", " + _dafny.String(data.Resource) + ")" 594 } 595 default: 596 { 597 return "<unexpected>" 598 } 599 } 600 } 601 602 func (_this AwsArn) Equals(other AwsArn) bool { 603 switch data1 := _this.Get_().(type) { 604 case AwsArn_AwsArn: 605 { 606 data2, ok := other.Get_().(AwsArn_AwsArn) 607 return ok && data1.ArnLiteral.Equals(data2.ArnLiteral) && data1.Partition.Equals(data2.Partition) && data1.Service.Equals(data2.Service) && data1.Region.Equals(data2.Region) && data1.Account.Equals(data2.Account) && data1.Resource.Equals(data2.Resource) 608 } 609 default: 610 { 611 return false // unexpected 612 } 613 } 614 } 615 616 func (_this AwsArn) EqualsGeneric(other interface{}) bool { 617 typed, ok := other.(AwsArn) 618 return ok && _this.Equals(typed) 619 } 620 621 func Type_AwsArn_() _dafny.TypeDescriptor { 622 return type_AwsArn_{} 623 } 624 625 type type_AwsArn_ struct { 626 } 627 628 func (_this type_AwsArn_) Default() interface{} { 629 return Companion_AwsArn_.Default() 630 } 631 632 func (_this type_AwsArn_) String() string { 633 return "AwsArnParsing.AwsArn" 634 } 635 func (_this AwsArn) ParentTraits_() []*_dafny.TraitID { 636 return [](*_dafny.TraitID){} 637 } 638 639 var _ _dafny.TraitOffspring = AwsArn{} 640 641 func (_this AwsArn) Valid() bool { 642 { 643 return (((((_dafny.Companion_Sequence_.Equal((_this).Dtor_arnLiteral(), _dafny.SeqOfString("arn"))) && ((_dafny.IntOfUint32(((_this).Dtor_partition()).Cardinality())).Sign() == 1)) && ((_dafny.IntOfUint32(((_this).Dtor_service()).Cardinality())).Sign() == 1)) && ((_dafny.IntOfUint32(((_this).Dtor_region()).Cardinality())).Sign() == 1)) && ((_dafny.IntOfUint32(((_this).Dtor_account()).Cardinality())).Sign() == 1)) && (((_this).Dtor_resource()).Valid()) 644 } 645 } 646 func (_this AwsArn) ToString() _dafny.Sequence { 647 { 648 return (_this).ToArnString(m_Wrappers.Companion_Option_.Create_None_()) 649 } 650 } 651 func (_this AwsArn) ToArnString(customRegion m_Wrappers.Option) _dafny.Sequence { 652 { 653 goto TAIL_CALL_START 654 TAIL_CALL_START: 655 var _source0 m_Wrappers.Option = customRegion 656 _ = _source0 657 { 658 if _source0.Is_None() { 659 var _in0 AwsArn = _this 660 _ = _in0 661 var _in1 m_Wrappers.Option = m_Wrappers.Companion_Option_.Create_Some_((_this).Dtor_region()) 662 _ = _in1 663 _this = _in0 664 665 customRegion = _in1 666 goto TAIL_CALL_START 667 } 668 } 669 { 670 var _0_customRegion _dafny.Sequence = _source0.Get_().(m_Wrappers.Option_Some).Value.(_dafny.Sequence) 671 _ = _0_customRegion 672 return m_StandardLibrary.Companion_Default___.Join(_dafny.SeqOf((_this).Dtor_arnLiteral(), (_this).Dtor_partition(), (_this).Dtor_service(), _0_customRegion, (_this).Dtor_account(), ((_this).Dtor_resource()).ToString()), _dafny.SeqOfString(":")) 673 } 674 } 675 } 676 677 // End of datatype AwsArn 678 679 // Definition of class AwsKmsArn 680 type AwsKmsArn struct { 681 } 682 683 func New_AwsKmsArn_() *AwsKmsArn { 684 _this := AwsKmsArn{} 685 686 return &_this 687 } 688 689 type CompanionStruct_AwsKmsArn_ struct { 690 } 691 692 var Companion_AwsKmsArn_ = CompanionStruct_AwsKmsArn_{} 693 694 func (*AwsKmsArn) String() string { 695 return "AwsArnParsing.AwsKmsArn" 696 } 697 698 // End of class AwsKmsArn 699 700 func Type_AwsKmsArn_() _dafny.TypeDescriptor { 701 return type_AwsKmsArn_{} 702 } 703 704 type type_AwsKmsArn_ struct { 705 } 706 707 func (_this type_AwsKmsArn_) Default() interface{} { 708 return Companion_AwsArn_.Default() 709 } 710 711 func (_this type_AwsKmsArn_) String() string { 712 return "AwsArnParsing.AwsKmsArn" 713 } 714 func (_this *CompanionStruct_AwsKmsArn_) Is_(__source AwsArn) bool { 715 var _1_a AwsArn = (__source) 716 _ = _1_a 717 return Companion_Default___.ValidAwsKmsArn(_1_a) 718 } 719 720 // Definition of class AwsKmsResource 721 type AwsKmsResource struct { 722 } 723 724 func New_AwsKmsResource_() *AwsKmsResource { 725 _this := AwsKmsResource{} 726 727 return &_this 728 } 729 730 type CompanionStruct_AwsKmsResource_ struct { 731 } 732 733 var Companion_AwsKmsResource_ = CompanionStruct_AwsKmsResource_{} 734 735 func (*AwsKmsResource) String() string { 736 return "AwsArnParsing.AwsKmsResource" 737 } 738 739 // End of class AwsKmsResource 740 741 func Type_AwsKmsResource_() _dafny.TypeDescriptor { 742 return type_AwsKmsResource_{} 743 } 744 745 type type_AwsKmsResource_ struct { 746 } 747 748 func (_this type_AwsKmsResource_) Default() interface{} { 749 return Companion_AwsResource_.Default() 750 } 751 752 func (_this type_AwsKmsResource_) String() string { 753 return "AwsArnParsing.AwsKmsResource" 754 } 755 func (_this *CompanionStruct_AwsKmsResource_) Is_(__source AwsResource) bool { 756 var _2_r AwsResource = (__source) 757 _ = _2_r 758 return Companion_Default___.ValidAwsKmsResource(_2_r) 759 } 760 761 // Definition of datatype AwsKmsIdentifier 762 type AwsKmsIdentifier struct { 763 Data_AwsKmsIdentifier_ 764 } 765 766 func (_this AwsKmsIdentifier) Get_() Data_AwsKmsIdentifier_ { 767 return _this.Data_AwsKmsIdentifier_ 768 } 769 770 type Data_AwsKmsIdentifier_ interface { 771 isAwsKmsIdentifier() 772 } 773 774 type CompanionStruct_AwsKmsIdentifier_ struct { 775 } 776 777 var Companion_AwsKmsIdentifier_ = CompanionStruct_AwsKmsIdentifier_{} 778 779 type AwsKmsIdentifier_AwsKmsArnIdentifier struct { 780 A AwsArn 781 } 782 783 func (AwsKmsIdentifier_AwsKmsArnIdentifier) isAwsKmsIdentifier() {} 784 785 func (CompanionStruct_AwsKmsIdentifier_) Create_AwsKmsArnIdentifier_(A AwsArn) AwsKmsIdentifier { 786 return AwsKmsIdentifier{AwsKmsIdentifier_AwsKmsArnIdentifier{A}} 787 } 788 789 func (_this AwsKmsIdentifier) Is_AwsKmsArnIdentifier() bool { 790 _, ok := _this.Get_().(AwsKmsIdentifier_AwsKmsArnIdentifier) 791 return ok 792 } 793 794 type AwsKmsIdentifier_AwsKmsRawResourceIdentifier struct { 795 R AwsResource 796 } 797 798 func (AwsKmsIdentifier_AwsKmsRawResourceIdentifier) isAwsKmsIdentifier() {} 799 800 func (CompanionStruct_AwsKmsIdentifier_) Create_AwsKmsRawResourceIdentifier_(R AwsResource) AwsKmsIdentifier { 801 return AwsKmsIdentifier{AwsKmsIdentifier_AwsKmsRawResourceIdentifier{R}} 802 } 803 804 func (_this AwsKmsIdentifier) Is_AwsKmsRawResourceIdentifier() bool { 805 _, ok := _this.Get_().(AwsKmsIdentifier_AwsKmsRawResourceIdentifier) 806 return ok 807 } 808 809 func (CompanionStruct_AwsKmsIdentifier_) Default() AwsKmsIdentifier { 810 return Companion_AwsKmsIdentifier_.Create_AwsKmsArnIdentifier_(Companion_AwsArn_.Default()) 811 } 812 813 func (_this AwsKmsIdentifier) Dtor_a() AwsArn { 814 return _this.Get_().(AwsKmsIdentifier_AwsKmsArnIdentifier).A 815 } 816 817 func (_this AwsKmsIdentifier) Dtor_r() AwsResource { 818 return _this.Get_().(AwsKmsIdentifier_AwsKmsRawResourceIdentifier).R 819 } 820 821 func (_this AwsKmsIdentifier) String() string { 822 switch data := _this.Get_().(type) { 823 case nil: 824 return "null" 825 case AwsKmsIdentifier_AwsKmsArnIdentifier: 826 { 827 return "AwsArnParsing.AwsKmsIdentifier.AwsKmsArnIdentifier" + "(" + _dafny.String(data.A) + ")" 828 } 829 case AwsKmsIdentifier_AwsKmsRawResourceIdentifier: 830 { 831 return "AwsArnParsing.AwsKmsIdentifier.AwsKmsRawResourceIdentifier" + "(" + _dafny.String(data.R) + ")" 832 } 833 default: 834 { 835 return "<unexpected>" 836 } 837 } 838 } 839 840 func (_this AwsKmsIdentifier) Equals(other AwsKmsIdentifier) bool { 841 switch data1 := _this.Get_().(type) { 842 case AwsKmsIdentifier_AwsKmsArnIdentifier: 843 { 844 data2, ok := other.Get_().(AwsKmsIdentifier_AwsKmsArnIdentifier) 845 return ok && data1.A.Equals(data2.A) 846 } 847 case AwsKmsIdentifier_AwsKmsRawResourceIdentifier: 848 { 849 data2, ok := other.Get_().(AwsKmsIdentifier_AwsKmsRawResourceIdentifier) 850 return ok && data1.R.Equals(data2.R) 851 } 852 default: 853 { 854 return false // unexpected 855 } 856 } 857 } 858 859 func (_this AwsKmsIdentifier) EqualsGeneric(other interface{}) bool { 860 typed, ok := other.(AwsKmsIdentifier) 861 return ok && _this.Equals(typed) 862 } 863 864 func Type_AwsKmsIdentifier_() _dafny.TypeDescriptor { 865 return type_AwsKmsIdentifier_{} 866 } 867 868 type type_AwsKmsIdentifier_ struct { 869 } 870 871 func (_this type_AwsKmsIdentifier_) Default() interface{} { 872 return Companion_AwsKmsIdentifier_.Default() 873 } 874 875 func (_this type_AwsKmsIdentifier_) String() string { 876 return "AwsArnParsing.AwsKmsIdentifier" 877 } 878 func (_this AwsKmsIdentifier) ParentTraits_() []*_dafny.TraitID { 879 return [](*_dafny.TraitID){} 880 } 881 882 var _ _dafny.TraitOffspring = AwsKmsIdentifier{} 883 884 func (_this AwsKmsIdentifier) ToString() _dafny.Sequence { 885 { 886 var _source0 AwsKmsIdentifier = _this 887 _ = _source0 888 { 889 if _source0.Is_AwsKmsArnIdentifier() { 890 var _0_a AwsArn = _source0.Get_().(AwsKmsIdentifier_AwsKmsArnIdentifier).A 891 _ = _0_a 892 return (_0_a).ToString() 893 } 894 } 895 { 896 var _1_r AwsResource = _source0.Get_().(AwsKmsIdentifier_AwsKmsRawResourceIdentifier).R 897 _ = _1_r 898 return (_1_r).ToString() 899 } 900 } 901 } 902 903 // End of datatype AwsKmsIdentifier 904 905 // Definition of class AmazonDynamodbTableArn 906 type AmazonDynamodbTableArn struct { 907 } 908 909 func New_AmazonDynamodbTableArn_() *AmazonDynamodbTableArn { 910 _this := AmazonDynamodbTableArn{} 911 912 return &_this 913 } 914 915 type CompanionStruct_AmazonDynamodbTableArn_ struct { 916 } 917 918 var Companion_AmazonDynamodbTableArn_ = CompanionStruct_AmazonDynamodbTableArn_{} 919 920 func (*AmazonDynamodbTableArn) String() string { 921 return "AwsArnParsing.AmazonDynamodbTableArn" 922 } 923 924 // End of class AmazonDynamodbTableArn 925 926 func Type_AmazonDynamodbTableArn_() _dafny.TypeDescriptor { 927 return type_AmazonDynamodbTableArn_{} 928 } 929 930 type type_AmazonDynamodbTableArn_ struct { 931 } 932 933 func (_this type_AmazonDynamodbTableArn_) Default() interface{} { 934 return Companion_AwsArn_.Default() 935 } 936 937 func (_this type_AmazonDynamodbTableArn_) String() string { 938 return "AwsArnParsing.AmazonDynamodbTableArn" 939 } 940 func (_this *CompanionStruct_AmazonDynamodbTableArn_) Is_(__source AwsArn) bool { 941 var _2_a AwsArn = (__source) 942 _ = _2_a 943 return Companion_Default___.ValidAmazonDynamodbArn(_2_a) 944 } 945 946 // Definition of class AmazonDynamodbResource 947 type AmazonDynamodbResource struct { 948 } 949 950 func New_AmazonDynamodbResource_() *AmazonDynamodbResource { 951 _this := AmazonDynamodbResource{} 952 953 return &_this 954 } 955 956 type CompanionStruct_AmazonDynamodbResource_ struct { 957 } 958 959 var Companion_AmazonDynamodbResource_ = CompanionStruct_AmazonDynamodbResource_{} 960 961 func (*AmazonDynamodbResource) String() string { 962 return "AwsArnParsing.AmazonDynamodbResource" 963 } 964 965 // End of class AmazonDynamodbResource 966 967 func Type_AmazonDynamodbResource_() _dafny.TypeDescriptor { 968 return type_AmazonDynamodbResource_{} 969 } 970 971 type type_AmazonDynamodbResource_ struct { 972 } 973 974 func (_this type_AmazonDynamodbResource_) Default() interface{} { 975 return Companion_AwsResource_.Default() 976 } 977 978 func (_this type_AmazonDynamodbResource_) String() string { 979 return "AwsArnParsing.AmazonDynamodbResource" 980 } 981 func (_this *CompanionStruct_AmazonDynamodbResource_) Is_(__source AwsResource) bool { 982 var _3_r AwsResource = (__source) 983 _ = _3_r 984 return Companion_Default___.ValidAmazonDynamodbResource(_3_r) 985 } 986 987 // Definition of datatype AmazonDynamodbTableName 988 type AmazonDynamodbTableName struct { 989 Data_AmazonDynamodbTableName_ 990 } 991 992 func (_this AmazonDynamodbTableName) Get_() Data_AmazonDynamodbTableName_ { 993 return _this.Data_AmazonDynamodbTableName_ 994 } 995 996 type Data_AmazonDynamodbTableName_ interface { 997 isAmazonDynamodbTableName() 998 } 999 1000 type CompanionStruct_AmazonDynamodbTableName_ struct { 1001 } 1002 1003 var Companion_AmazonDynamodbTableName_ = CompanionStruct_AmazonDynamodbTableName_{} 1004 1005 type AmazonDynamodbTableName_AmazonDynamodbTableArn struct { 1006 A AwsArn 1007 } 1008 1009 func (AmazonDynamodbTableName_AmazonDynamodbTableArn) isAmazonDynamodbTableName() {} 1010 1011 func (CompanionStruct_AmazonDynamodbTableName_) Create_AmazonDynamodbTableArn_(A AwsArn) AmazonDynamodbTableName { 1012 return AmazonDynamodbTableName{AmazonDynamodbTableName_AmazonDynamodbTableArn{A}} 1013 } 1014 1015 func (_this AmazonDynamodbTableName) Is_AmazonDynamodbTableArn() bool { 1016 _, ok := _this.Get_().(AmazonDynamodbTableName_AmazonDynamodbTableArn) 1017 return ok 1018 } 1019 1020 func (CompanionStruct_AmazonDynamodbTableName_) Default() AmazonDynamodbTableName { 1021 return Companion_AmazonDynamodbTableName_.Create_AmazonDynamodbTableArn_(Companion_AwsArn_.Default()) 1022 } 1023 1024 func (_this AmazonDynamodbTableName) Dtor_a() AwsArn { 1025 return _this.Get_().(AmazonDynamodbTableName_AmazonDynamodbTableArn).A 1026 } 1027 1028 func (_this AmazonDynamodbTableName) String() string { 1029 switch data := _this.Get_().(type) { 1030 case nil: 1031 return "null" 1032 case AmazonDynamodbTableName_AmazonDynamodbTableArn: 1033 { 1034 return "AwsArnParsing.AmazonDynamodbTableName.AmazonDynamodbTableArn" + "(" + _dafny.String(data.A) + ")" 1035 } 1036 default: 1037 { 1038 return "<unexpected>" 1039 } 1040 } 1041 } 1042 1043 func (_this AmazonDynamodbTableName) Equals(other AmazonDynamodbTableName) bool { 1044 switch data1 := _this.Get_().(type) { 1045 case AmazonDynamodbTableName_AmazonDynamodbTableArn: 1046 { 1047 data2, ok := other.Get_().(AmazonDynamodbTableName_AmazonDynamodbTableArn) 1048 return ok && data1.A.Equals(data2.A) 1049 } 1050 default: 1051 { 1052 return false // unexpected 1053 } 1054 } 1055 } 1056 1057 func (_this AmazonDynamodbTableName) EqualsGeneric(other interface{}) bool { 1058 typed, ok := other.(AmazonDynamodbTableName) 1059 return ok && _this.Equals(typed) 1060 } 1061 1062 func Type_AmazonDynamodbTableName_() _dafny.TypeDescriptor { 1063 return type_AmazonDynamodbTableName_{} 1064 } 1065 1066 type type_AmazonDynamodbTableName_ struct { 1067 } 1068 1069 func (_this type_AmazonDynamodbTableName_) Default() interface{} { 1070 return Companion_AmazonDynamodbTableName_.Default() 1071 } 1072 1073 func (_this type_AmazonDynamodbTableName_) String() string { 1074 return "AwsArnParsing.AmazonDynamodbTableName" 1075 } 1076 func (_this AmazonDynamodbTableName) ParentTraits_() []*_dafny.TraitID { 1077 return [](*_dafny.TraitID){} 1078 } 1079 1080 var _ _dafny.TraitOffspring = AmazonDynamodbTableName{} 1081 1082 func (_this AmazonDynamodbTableName) GetTableName() _dafny.Sequence { 1083 { 1084 var _source0 AmazonDynamodbTableName = _this 1085 _ = _source0 1086 { 1087 var _0_a AwsArn = _source0.Get_().(AmazonDynamodbTableName_AmazonDynamodbTableArn).A 1088 _ = _0_a 1089 return ((_0_a).Dtor_resource()).Dtor_value() 1090 } 1091 } 1092 } 1093 1094 // End of datatype AmazonDynamodbTableName 1095 1096 // Definition of class AwsKmsIdentifierString 1097 type AwsKmsIdentifierString struct { 1098 } 1099 1100 func New_AwsKmsIdentifierString_() *AwsKmsIdentifierString { 1101 _this := AwsKmsIdentifierString{} 1102 1103 return &_this 1104 } 1105 1106 type CompanionStruct_AwsKmsIdentifierString_ struct { 1107 } 1108 1109 var Companion_AwsKmsIdentifierString_ = CompanionStruct_AwsKmsIdentifierString_{} 1110 1111 func (*AwsKmsIdentifierString) String() string { 1112 return "AwsArnParsing.AwsKmsIdentifierString" 1113 } 1114 1115 // End of class AwsKmsIdentifierString 1116 1117 func Type_AwsKmsIdentifierString_() _dafny.TypeDescriptor { 1118 return type_AwsKmsIdentifierString_{} 1119 } 1120 1121 type type_AwsKmsIdentifierString_ struct { 1122 } 1123 1124 func (_this type_AwsKmsIdentifierString_) Default() interface{} { 1125 return _dafny.EmptySeq.SetString() 1126 } 1127 1128 func (_this type_AwsKmsIdentifierString_) String() string { 1129 return "AwsArnParsing.AwsKmsIdentifierString" 1130 } 1131 func (_this *CompanionStruct_AwsKmsIdentifierString_) Is_(__source _dafny.Sequence) bool { 1132 var _1_s _dafny.Sequence = (__source) 1133 _ = _1_s 1134 return (Companion_Default___.IsAwsKmsIdentifierString(_1_s)).Is_Success() 1135 }