releases/go/mpl/AwsArnParsing/AwsArnParsing.go (946 lines of code) (raw):
// Package AwsArnParsing
// Dafny module AwsArnParsing compiled into Go
package AwsArnParsing
import (
os "os"
m_ComAmazonawsDynamodbTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/dynamodb/ComAmazonawsDynamodbTypes"
m_ComAmazonawsKmsTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/kms/ComAmazonawsKmsTypes"
m_AwsCryptographyKeyStoreTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyKeyStoreTypes"
m_AwsCryptographyMaterialProvidersTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/mpl/AwsCryptographyMaterialProvidersTypes"
m_AtomicPrimitives "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AtomicPrimitives"
m_AwsCryptographyPrimitivesOperations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesOperations"
m_AwsCryptographyPrimitivesTypes "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/AwsCryptographyPrimitivesTypes"
m_Digest "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Digest"
m_HKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/HKDF"
m_KdfCtr "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/KdfCtr"
m_Random "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/Random"
m_WrappedHKDF "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHKDF"
m_WrappedHMAC "github.com/aws/aws-cryptographic-material-providers-library/releases/go/primitives/WrappedHMAC"
m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions"
m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64"
m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas"
m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts"
m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals"
m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear"
m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod"
m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO"
m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare"
m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions"
m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals"
m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt"
m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings"
m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm"
m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_"
m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals"
m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear"
m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul"
m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals"
m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear"
m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power"
m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations"
m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq"
m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort"
m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting"
m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary"
m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop"
m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence"
m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String"
m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt"
m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams"
m_UTF8 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UTF8"
m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings"
m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_"
m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm"
m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm"
m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_"
_dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny"
)
var _ = os.Args
var _ _dafny.Dummy__
var _ m__System.Dummy__
var _ m_Wrappers.Dummy__
var _ m_BoundedInts.Dummy__
var _ m_StandardLibrary_UInt.Dummy__
var _ m_StandardLibrary_Sequence.Dummy__
var _ m_StandardLibrary_String.Dummy__
var _ m_StandardLibrary.Dummy__
var _ m_AwsCryptographyPrimitivesTypes.Dummy__
var _ m_Random.Dummy__
var _ m_Digest.Dummy__
var _ m_WrappedHMAC.Dummy__
var _ m_HKDF.Dummy__
var _ m_WrappedHKDF.Dummy__
var _ m_KdfCtr.Dummy__
var _ m_AwsCryptographyPrimitivesOperations.Dummy__
var _ m_AtomicPrimitives.Dummy__
var _ m_ComAmazonawsDynamodbTypes.Dummy__
var _ m_ComAmazonawsKmsTypes.Dummy__
var _ m_Relations.Dummy__
var _ m_Seq_MergeSort.Dummy__
var _ m__Math.Dummy__
var _ m_Seq.Dummy__
var _ m__Unicode.Dummy__
var _ m_Functions.Dummy__
var _ m_Utf8EncodingForm.Dummy__
var _ m_Utf16EncodingForm.Dummy__
var _ m_UnicodeStrings.Dummy__
var _ m_FileIO.Dummy__
var _ m_GeneralInternals.Dummy__
var _ m_MulInternalsNonlinear.Dummy__
var _ m_MulInternals.Dummy__
var _ m_Mul.Dummy__
var _ m_ModInternalsNonlinear.Dummy__
var _ m_DivInternalsNonlinear.Dummy__
var _ m_ModInternals.Dummy__
var _ m_DivInternals.Dummy__
var _ m_DivMod.Dummy__
var _ m_Power.Dummy__
var _ m_Logarithm.Dummy__
var _ m_StandardLibraryInterop.Dummy__
var _ m_Streams.Dummy__
var _ m_Sorting.Dummy__
var _ m_HexStrings.Dummy__
var _ m_GetOpt.Dummy__
var _ m_FloatCompare.Dummy__
var _ m_Base64.Dummy__
var _ m_Base64Lemmas.Dummy__
var _ m_Actions.Dummy__
var _ m_AwsCryptographyKeyStoreTypes.Dummy__
var _ m_AwsCryptographyMaterialProvidersTypes.Dummy__
type Dummy__ struct{}
// Definition of class Default__
type Default__ struct {
dummy byte
}
func New_Default___() *Default__ {
_this := Default__{}
return &_this
}
type CompanionStruct_Default___ struct {
}
var Companion_Default___ = CompanionStruct_Default___{}
func (_this *Default__) Equals(other *Default__) bool {
return _this == other
}
func (_this *Default__) EqualsGeneric(x interface{}) bool {
other, ok := x.(*Default__)
return ok && _this.Equals(other)
}
func (*Default__) String() string {
return "AwsArnParsing.Default__"
}
func (_this *Default__) ParentTraits_() []*_dafny.TraitID {
return [](*_dafny.TraitID){}
}
var _ _dafny.TraitOffspring = &Default__{}
func (_static *CompanionStruct_Default___) ValidAwsKmsResource(resource AwsResource) bool {
return ((resource).Valid()) && ((_dafny.Companion_Sequence_.Equal((resource).Dtor_resourceType(), _dafny.SeqOfString("key"))) || (_dafny.Companion_Sequence_.Equal((resource).Dtor_resourceType(), _dafny.SeqOfString("alias"))))
}
func (_static *CompanionStruct_Default___) ValidAwsKmsArn(arn AwsArn) bool {
return (((arn).Valid()) && (_dafny.Companion_Sequence_.Equal((arn).Dtor_service(), _dafny.SeqOfString("kms")))) && (Companion_Default___.ValidAwsKmsResource((arn).Dtor_resource()))
}
func (_static *CompanionStruct_Default___) ParseAwsKmsRawResources(identifier _dafny.Sequence) m_Wrappers.Result {
var _0_info _dafny.Sequence = m_StandardLibrary.Companion_Default___.Split(identifier, _dafny.Char('/'))
_ = _0_info
var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(!_dafny.Companion_Sequence_.Equal((_0_info).Select(0).(_dafny.Sequence), _dafny.SeqOfString("key")), _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Malformed raw key id: "), identifier))
_ = _1_valueOrError0
if (_1_valueOrError0).IsFailure() {
return (_1_valueOrError0).PropagateFailure()
} else if (_dafny.IntOfUint32((_0_info).Cardinality())).Cmp(_dafny.One) == 0 {
return Companion_Default___.ParseAwsKmsResources(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("key/"), identifier))
} else {
return Companion_Default___.ParseAwsKmsResources(identifier)
}
}
func (_static *CompanionStruct_Default___) ParseAwsKmsResources(identifier _dafny.Sequence) m_Wrappers.Result {
var _0_info _dafny.Sequence = m_StandardLibrary.Companion_Default___.Split(identifier, _dafny.Char('/'))
_ = _0_info
var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((_0_info).Cardinality())).Cmp(_dafny.One) > 0, _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Malformed resource: "), identifier))
_ = _1_valueOrError0
if (_1_valueOrError0).IsFailure() {
return (_1_valueOrError0).PropagateFailure()
} else {
var _2_resourceType _dafny.Sequence = (_0_info).Select(0).(_dafny.Sequence)
_ = _2_resourceType
var _3_value _dafny.Sequence = m_StandardLibrary.Companion_Default___.Join((_0_info).Drop(1), _dafny.SeqOfString("/"))
_ = _3_value
var _4_resource AwsResource = Companion_AwsResource_.Create_AwsResource_(_2_resourceType, _3_value)
_ = _4_resource
var _5_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(Companion_Default___.ValidAwsKmsResource(_4_resource), _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Malformed resource: "), identifier))
_ = _5_valueOrError1
if (_5_valueOrError1).IsFailure() {
return (_5_valueOrError1).PropagateFailure()
} else {
return m_Wrappers.Companion_Result_.Create_Success_(_4_resource)
}
}
}
func (_static *CompanionStruct_Default___) ValidAmazonDynamodbResource(resource AwsResource) bool {
return ((resource).Valid()) && (_dafny.Companion_Sequence_.Equal((resource).Dtor_resourceType(), _dafny.SeqOfString("table")))
}
func (_static *CompanionStruct_Default___) ValidAmazonDynamodbArn(arn AwsArn) bool {
return (((arn).Valid()) && (_dafny.Companion_Sequence_.Equal((arn).Dtor_service(), _dafny.SeqOfString("dynamodb")))) && (Companion_Default___.ValidAmazonDynamodbResource((arn).Dtor_resource()))
}
func (_static *CompanionStruct_Default___) ParseAmazonDynamodbResources(identifier _dafny.Sequence) m_Wrappers.Result {
var _0_info m_Wrappers.Option = m_StandardLibrary.Companion_Default___.SplitOnce_q(identifier, _dafny.Char('/'))
_ = _0_info
var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_0_info).Is_Some(), _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Malformed resource: "), identifier))
_ = _1_valueOrError0
if (_1_valueOrError0).IsFailure() {
return (_1_valueOrError0).PropagateFailure()
} else {
var _2_resourceType _dafny.Sequence = (*((_0_info).Dtor_value().(_dafny.Tuple)).IndexInt(0)).(_dafny.Sequence)
_ = _2_resourceType
var _3_value _dafny.Sequence = (*((_0_info).Dtor_value().(_dafny.Tuple)).IndexInt(1)).(_dafny.Sequence)
_ = _3_value
var _4_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_ComAmazonawsDynamodbTypes.Companion_Default___.IsValid__TableName(_3_value), _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Table Name invalid: "), identifier))
_ = _4_valueOrError1
if (_4_valueOrError1).IsFailure() {
return (_4_valueOrError1).PropagateFailure()
} else {
var _5_resource AwsResource = Companion_AwsResource_.Create_AwsResource_(_2_resourceType, _3_value)
_ = _5_resource
var _6_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(Companion_Default___.ValidAmazonDynamodbResource(_5_resource), _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Malformed resource: "), identifier))
_ = _6_valueOrError2
if (_6_valueOrError2).IsFailure() {
return (_6_valueOrError2).PropagateFailure()
} else {
return m_Wrappers.Companion_Result_.Create_Success_(_5_resource)
}
}
}
}
func (_static *CompanionStruct_Default___) ParseAwsKmsArn(identifier _dafny.Sequence) m_Wrappers.Result {
var _0_components _dafny.Sequence = m_StandardLibrary.Companion_Default___.Split(identifier, _dafny.Char(':'))
_ = _0_components
var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfInt64(6)).Cmp(_dafny.IntOfUint32((_0_components).Cardinality())) == 0, _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Malformed arn: "), identifier))
_ = _1_valueOrError0
if (_1_valueOrError0).IsFailure() {
return (_1_valueOrError0).PropagateFailure()
} else {
var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.ParseAwsKmsResources((_0_components).Select(5).(_dafny.Sequence))
_ = _2_valueOrError1
if (_2_valueOrError1).IsFailure() {
return (_2_valueOrError1).PropagateFailure()
} else {
var _3_resource AwsResource = (_2_valueOrError1).Extract().(AwsResource)
_ = _3_resource
var _4_arn AwsArn = Companion_AwsArn_.Create_AwsArn_((_0_components).Select(0).(_dafny.Sequence), (_0_components).Select(1).(_dafny.Sequence), (_0_components).Select(2).(_dafny.Sequence), (_0_components).Select(3).(_dafny.Sequence), (_0_components).Select(4).(_dafny.Sequence), _3_resource)
_ = _4_arn
var _5_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(Companion_Default___.ValidAwsKmsArn(_4_arn), _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Malformed Arn:"), identifier))
_ = _5_valueOrError2
if (_5_valueOrError2).IsFailure() {
return (_5_valueOrError2).PropagateFailure()
} else {
return m_Wrappers.Companion_Result_.Create_Success_(_4_arn)
}
}
}
}
func (_static *CompanionStruct_Default___) ParseAmazonDynamodbTableArn(identifier _dafny.Sequence) m_Wrappers.Result {
var _0_components _dafny.Sequence = m_StandardLibrary.Companion_Default___.Split(identifier, _dafny.Char(':'))
_ = _0_components
var _1_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need((_dafny.IntOfInt64(6)).Cmp(_dafny.IntOfUint32((_0_components).Cardinality())) == 0, _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Malformed arn: "), identifier))
_ = _1_valueOrError0
if (_1_valueOrError0).IsFailure() {
return (_1_valueOrError0).PropagateFailure()
} else {
var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.ParseAmazonDynamodbResources((_0_components).Select(5).(_dafny.Sequence))
_ = _2_valueOrError1
if (_2_valueOrError1).IsFailure() {
return (_2_valueOrError1).PropagateFailure()
} else {
var _3_resource AwsResource = (_2_valueOrError1).Extract().(AwsResource)
_ = _3_resource
var _4_arn AwsArn = Companion_AwsArn_.Create_AwsArn_((_0_components).Select(0).(_dafny.Sequence), (_0_components).Select(1).(_dafny.Sequence), (_0_components).Select(2).(_dafny.Sequence), (_0_components).Select(3).(_dafny.Sequence), (_0_components).Select(4).(_dafny.Sequence), _3_resource)
_ = _4_arn
var _5_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(Companion_Default___.ValidAmazonDynamodbArn(_4_arn), _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Malformed Arn:"), identifier))
_ = _5_valueOrError2
if (_5_valueOrError2).IsFailure() {
return (_5_valueOrError2).PropagateFailure()
} else {
return m_Wrappers.Companion_Result_.Create_Success_(_4_arn)
}
}
}
}
func (_static *CompanionStruct_Default___) ParseAwsKmsIdentifier(identifier _dafny.Sequence) m_Wrappers.Result {
if _dafny.Companion_Sequence_.IsPrefixOf(_dafny.SeqOfString("arn:"), identifier) {
var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.ParseAwsKmsArn(identifier)
_ = _0_valueOrError0
if (_0_valueOrError0).IsFailure() {
return (_0_valueOrError0).PropagateFailure()
} else {
var _1_arn AwsArn = (_0_valueOrError0).Extract().(AwsArn)
_ = _1_arn
return m_Wrappers.Companion_Result_.Create_Success_(Companion_AwsKmsIdentifier_.Create_AwsKmsArnIdentifier_(_1_arn))
}
} else {
var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.ParseAwsKmsRawResources(identifier)
_ = _2_valueOrError1
if (_2_valueOrError1).IsFailure() {
return (_2_valueOrError1).PropagateFailure()
} else {
var _3_r AwsResource = (_2_valueOrError1).Extract().(AwsResource)
_ = _3_r
return m_Wrappers.Companion_Result_.Create_Success_(Companion_AwsKmsIdentifier_.Create_AwsKmsRawResourceIdentifier_(_3_r))
}
}
}
func (_static *CompanionStruct_Default___) ParseAmazonDynamodbTableName(identifier _dafny.Sequence) m_Wrappers.Result {
var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.ParseAmazonDynamodbTableArn(identifier)
_ = _0_valueOrError0
if (_0_valueOrError0).IsFailure() {
return (_0_valueOrError0).PropagateFailure()
} else {
var _1_arn AwsArn = (_0_valueOrError0).Extract().(AwsArn)
_ = _1_arn
var _2_tableArn AmazonDynamodbTableName = Companion_AmazonDynamodbTableName_.Create_AmazonDynamodbTableArn_(_1_arn)
_ = _2_tableArn
var _3_tableName _dafny.Sequence = (_2_tableArn).GetTableName()
_ = _3_tableName
return m_Wrappers.Companion_Result_.Create_Success_(_3_tableName)
}
}
func (_static *CompanionStruct_Default___) IsMultiRegionAwsKmsArn(arn AwsArn) bool {
return Companion_Default___.IsMultiRegionAwsKmsResource((arn).Dtor_resource())
}
func (_static *CompanionStruct_Default___) IsMultiRegionAwsKmsIdentifier(identifier AwsKmsIdentifier) bool {
var _source0 AwsKmsIdentifier = identifier
_ = _source0
{
if _source0.Is_AwsKmsArnIdentifier() {
var _0_arn AwsArn = _source0.Get_().(AwsKmsIdentifier_AwsKmsArnIdentifier).A
_ = _0_arn
return Companion_Default___.IsMultiRegionAwsKmsArn(_0_arn)
}
}
{
var _1_r AwsResource = _source0.Get_().(AwsKmsIdentifier_AwsKmsRawResourceIdentifier).R
_ = _1_r
return Companion_Default___.IsMultiRegionAwsKmsResource(_1_r)
}
}
func (_static *CompanionStruct_Default___) IsMultiRegionAwsKmsResource(resource AwsResource) bool {
return (_dafny.Companion_Sequence_.Equal((resource).Dtor_resourceType(), _dafny.SeqOfString("key"))) && (_dafny.Companion_Sequence_.IsPrefixOf(_dafny.SeqOfString("mrk-"), (resource).Dtor_value()))
}
func (_static *CompanionStruct_Default___) GetRegion(identifier AwsKmsIdentifier) m_Wrappers.Option {
var _source0 AwsKmsIdentifier = identifier
_ = _source0
{
if _source0.Is_AwsKmsArnIdentifier() {
var _0_a AwsArn = _source0.Get_().(AwsKmsIdentifier_AwsKmsArnIdentifier).A
_ = _0_a
return m_Wrappers.Companion_Option_.Create_Some_((_0_a).Dtor_region())
}
}
{
return m_Wrappers.Companion_Option_.Create_None_()
}
}
func (_static *CompanionStruct_Default___) IsAwsKmsIdentifierString(s _dafny.Sequence) m_Wrappers.Result {
var _0_valueOrError0 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_UTF8.Companion_Default___.IsASCIIString(s), _dafny.SeqOfString("Not a valid ASCII string."))
_ = _0_valueOrError0
if (_0_valueOrError0).IsFailure() {
return (_0_valueOrError0).PropagateFailure()
} else {
var _1_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(((_dafny.IntOfUint32((s).Cardinality())).Sign() == 1) && ((_dafny.IntOfUint32((s).Cardinality())).Cmp(Companion_Default___.MAX__AWS__KMS__IDENTIFIER__LENGTH()) <= 0), _dafny.SeqOfString("Identifier exceeds maximum length."))
_ = _1_valueOrError1
if (_1_valueOrError1).IsFailure() {
return (_1_valueOrError1).PropagateFailure()
} else {
return Companion_Default___.ParseAwsKmsIdentifier(s)
}
}
}
func (_static *CompanionStruct_Default___) Error(s _dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error {
return m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(s)
}
func (_static *CompanionStruct_Default___) ValidateDdbTableArn(tableArn _dafny.Sequence) m_Wrappers.Result {
var _0_valueOrError0 m_Wrappers.Result = (Companion_Default___.ParseAmazonDynamodbTableName(tableArn)).MapFailure(func(coer0 func(_dafny.Sequence) m_AwsCryptographyMaterialProvidersTypes.Error) func(interface{}) interface{} {
return func(arg0 interface{}) interface{} {
return coer0(arg0.(_dafny.Sequence))
}
}(Companion_Default___.Error))
_ = _0_valueOrError0
if (_0_valueOrError0).IsFailure() {
return (_0_valueOrError0).PropagateFailure()
} else {
var _1___v1 _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence)
_ = _1___v1
var _2_valueOrError1 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_UTF8.Companion_Default___.IsASCIIString(tableArn), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Table Arn is not ASCII")))
_ = _2_valueOrError1
if (_2_valueOrError1).IsFailure() {
return (_2_valueOrError1).PropagateFailure()
} else {
var _3_valueOrError2 m_Wrappers.Outcome = m_Wrappers.Companion_Default___.Need(m_ComAmazonawsDynamodbTypes.Companion_Default___.IsValid__TableName((Companion_Default___.ParseAmazonDynamodbTableName(tableArn)).Dtor_value().(_dafny.Sequence)), m_AwsCryptographyMaterialProvidersTypes.Companion_Error_.Create_AwsCryptographicMaterialProvidersException_(_dafny.SeqOfString("Table Name is too long")))
_ = _3_valueOrError2
if (_3_valueOrError2).IsFailure() {
return (_3_valueOrError2).PropagateFailure()
} else {
return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf())
}
}
}
}
func (_static *CompanionStruct_Default___) MAX__AWS__KMS__IDENTIFIER__LENGTH() _dafny.Int {
return _dafny.IntOfInt64(2048)
}
// End of class Default__
// Definition of datatype AwsResource
type AwsResource struct {
Data_AwsResource_
}
func (_this AwsResource) Get_() Data_AwsResource_ {
return _this.Data_AwsResource_
}
type Data_AwsResource_ interface {
isAwsResource()
}
type CompanionStruct_AwsResource_ struct {
}
var Companion_AwsResource_ = CompanionStruct_AwsResource_{}
type AwsResource_AwsResource struct {
ResourceType _dafny.Sequence
Value _dafny.Sequence
}
func (AwsResource_AwsResource) isAwsResource() {}
func (CompanionStruct_AwsResource_) Create_AwsResource_(ResourceType _dafny.Sequence, Value _dafny.Sequence) AwsResource {
return AwsResource{AwsResource_AwsResource{ResourceType, Value}}
}
func (_this AwsResource) Is_AwsResource() bool {
_, ok := _this.Get_().(AwsResource_AwsResource)
return ok
}
func (CompanionStruct_AwsResource_) Default() AwsResource {
return Companion_AwsResource_.Create_AwsResource_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString())
}
func (_this AwsResource) Dtor_resourceType() _dafny.Sequence {
return _this.Get_().(AwsResource_AwsResource).ResourceType
}
func (_this AwsResource) Dtor_value() _dafny.Sequence {
return _this.Get_().(AwsResource_AwsResource).Value
}
func (_this AwsResource) String() string {
switch data := _this.Get_().(type) {
case nil:
return "null"
case AwsResource_AwsResource:
{
return "AwsArnParsing.AwsResource.AwsResource" + "(" + _dafny.String(data.ResourceType) + ", " + _dafny.String(data.Value) + ")"
}
default:
{
return "<unexpected>"
}
}
}
func (_this AwsResource) Equals(other AwsResource) bool {
switch data1 := _this.Get_().(type) {
case AwsResource_AwsResource:
{
data2, ok := other.Get_().(AwsResource_AwsResource)
return ok && data1.ResourceType.Equals(data2.ResourceType) && data1.Value.Equals(data2.Value)
}
default:
{
return false // unexpected
}
}
}
func (_this AwsResource) EqualsGeneric(other interface{}) bool {
typed, ok := other.(AwsResource)
return ok && _this.Equals(typed)
}
func Type_AwsResource_() _dafny.TypeDescriptor {
return type_AwsResource_{}
}
type type_AwsResource_ struct {
}
func (_this type_AwsResource_) Default() interface{} {
return Companion_AwsResource_.Default()
}
func (_this type_AwsResource_) String() string {
return "AwsArnParsing.AwsResource"
}
func (_this AwsResource) ParentTraits_() []*_dafny.TraitID {
return [](*_dafny.TraitID){}
}
var _ _dafny.TraitOffspring = AwsResource{}
func (_this AwsResource) Valid() bool {
{
return (true) && ((_dafny.IntOfUint32(((_this).Dtor_value()).Cardinality())).Sign() == 1)
}
}
func (_this AwsResource) ToString() _dafny.Sequence {
{
return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate((_this).Dtor_resourceType(), _dafny.SeqOfString("/")), (_this).Dtor_value())
}
}
// End of datatype AwsResource
// Definition of datatype AwsArn
type AwsArn struct {
Data_AwsArn_
}
func (_this AwsArn) Get_() Data_AwsArn_ {
return _this.Data_AwsArn_
}
type Data_AwsArn_ interface {
isAwsArn()
}
type CompanionStruct_AwsArn_ struct {
}
var Companion_AwsArn_ = CompanionStruct_AwsArn_{}
type AwsArn_AwsArn struct {
ArnLiteral _dafny.Sequence
Partition _dafny.Sequence
Service _dafny.Sequence
Region _dafny.Sequence
Account _dafny.Sequence
Resource AwsResource
}
func (AwsArn_AwsArn) isAwsArn() {}
func (CompanionStruct_AwsArn_) Create_AwsArn_(ArnLiteral _dafny.Sequence, Partition _dafny.Sequence, Service _dafny.Sequence, Region _dafny.Sequence, Account _dafny.Sequence, Resource AwsResource) AwsArn {
return AwsArn{AwsArn_AwsArn{ArnLiteral, Partition, Service, Region, Account, Resource}}
}
func (_this AwsArn) Is_AwsArn() bool {
_, ok := _this.Get_().(AwsArn_AwsArn)
return ok
}
func (CompanionStruct_AwsArn_) Default() AwsArn {
return Companion_AwsArn_.Create_AwsArn_(_dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), _dafny.EmptySeq.SetString(), Companion_AwsResource_.Default())
}
func (_this AwsArn) Dtor_arnLiteral() _dafny.Sequence {
return _this.Get_().(AwsArn_AwsArn).ArnLiteral
}
func (_this AwsArn) Dtor_partition() _dafny.Sequence {
return _this.Get_().(AwsArn_AwsArn).Partition
}
func (_this AwsArn) Dtor_service() _dafny.Sequence {
return _this.Get_().(AwsArn_AwsArn).Service
}
func (_this AwsArn) Dtor_region() _dafny.Sequence {
return _this.Get_().(AwsArn_AwsArn).Region
}
func (_this AwsArn) Dtor_account() _dafny.Sequence {
return _this.Get_().(AwsArn_AwsArn).Account
}
func (_this AwsArn) Dtor_resource() AwsResource {
return _this.Get_().(AwsArn_AwsArn).Resource
}
func (_this AwsArn) String() string {
switch data := _this.Get_().(type) {
case nil:
return "null"
case AwsArn_AwsArn:
{
return "AwsArnParsing.AwsArn.AwsArn" + "(" + _dafny.String(data.ArnLiteral) + ", " + _dafny.String(data.Partition) + ", " + _dafny.String(data.Service) + ", " + _dafny.String(data.Region) + ", " + _dafny.String(data.Account) + ", " + _dafny.String(data.Resource) + ")"
}
default:
{
return "<unexpected>"
}
}
}
func (_this AwsArn) Equals(other AwsArn) bool {
switch data1 := _this.Get_().(type) {
case AwsArn_AwsArn:
{
data2, ok := other.Get_().(AwsArn_AwsArn)
return ok && data1.ArnLiteral.Equals(data2.ArnLiteral) && data1.Partition.Equals(data2.Partition) && data1.Service.Equals(data2.Service) && data1.Region.Equals(data2.Region) && data1.Account.Equals(data2.Account) && data1.Resource.Equals(data2.Resource)
}
default:
{
return false // unexpected
}
}
}
func (_this AwsArn) EqualsGeneric(other interface{}) bool {
typed, ok := other.(AwsArn)
return ok && _this.Equals(typed)
}
func Type_AwsArn_() _dafny.TypeDescriptor {
return type_AwsArn_{}
}
type type_AwsArn_ struct {
}
func (_this type_AwsArn_) Default() interface{} {
return Companion_AwsArn_.Default()
}
func (_this type_AwsArn_) String() string {
return "AwsArnParsing.AwsArn"
}
func (_this AwsArn) ParentTraits_() []*_dafny.TraitID {
return [](*_dafny.TraitID){}
}
var _ _dafny.TraitOffspring = AwsArn{}
func (_this AwsArn) Valid() bool {
{
return (((((_dafny.Companion_Sequence_.Equal((_this).Dtor_arnLiteral(), _dafny.SeqOfString("arn"))) && ((_dafny.IntOfUint32(((_this).Dtor_partition()).Cardinality())).Sign() == 1)) && ((_dafny.IntOfUint32(((_this).Dtor_service()).Cardinality())).Sign() == 1)) && ((_dafny.IntOfUint32(((_this).Dtor_region()).Cardinality())).Sign() == 1)) && ((_dafny.IntOfUint32(((_this).Dtor_account()).Cardinality())).Sign() == 1)) && (((_this).Dtor_resource()).Valid())
}
}
func (_this AwsArn) ToString() _dafny.Sequence {
{
return (_this).ToArnString(m_Wrappers.Companion_Option_.Create_None_())
}
}
func (_this AwsArn) ToArnString(customRegion m_Wrappers.Option) _dafny.Sequence {
{
goto TAIL_CALL_START
TAIL_CALL_START:
var _source0 m_Wrappers.Option = customRegion
_ = _source0
{
if _source0.Is_None() {
var _in0 AwsArn = _this
_ = _in0
var _in1 m_Wrappers.Option = m_Wrappers.Companion_Option_.Create_Some_((_this).Dtor_region())
_ = _in1
_this = _in0
customRegion = _in1
goto TAIL_CALL_START
}
}
{
var _0_customRegion _dafny.Sequence = _source0.Get_().(m_Wrappers.Option_Some).Value.(_dafny.Sequence)
_ = _0_customRegion
return m_StandardLibrary.Companion_Default___.Join(_dafny.SeqOf((_this).Dtor_arnLiteral(), (_this).Dtor_partition(), (_this).Dtor_service(), _0_customRegion, (_this).Dtor_account(), ((_this).Dtor_resource()).ToString()), _dafny.SeqOfString(":"))
}
}
}
// End of datatype AwsArn
// Definition of class AwsKmsArn
type AwsKmsArn struct {
}
func New_AwsKmsArn_() *AwsKmsArn {
_this := AwsKmsArn{}
return &_this
}
type CompanionStruct_AwsKmsArn_ struct {
}
var Companion_AwsKmsArn_ = CompanionStruct_AwsKmsArn_{}
func (*AwsKmsArn) String() string {
return "AwsArnParsing.AwsKmsArn"
}
// End of class AwsKmsArn
func Type_AwsKmsArn_() _dafny.TypeDescriptor {
return type_AwsKmsArn_{}
}
type type_AwsKmsArn_ struct {
}
func (_this type_AwsKmsArn_) Default() interface{} {
return Companion_AwsArn_.Default()
}
func (_this type_AwsKmsArn_) String() string {
return "AwsArnParsing.AwsKmsArn"
}
func (_this *CompanionStruct_AwsKmsArn_) Is_(__source AwsArn) bool {
var _1_a AwsArn = (__source)
_ = _1_a
return Companion_Default___.ValidAwsKmsArn(_1_a)
}
// Definition of class AwsKmsResource
type AwsKmsResource struct {
}
func New_AwsKmsResource_() *AwsKmsResource {
_this := AwsKmsResource{}
return &_this
}
type CompanionStruct_AwsKmsResource_ struct {
}
var Companion_AwsKmsResource_ = CompanionStruct_AwsKmsResource_{}
func (*AwsKmsResource) String() string {
return "AwsArnParsing.AwsKmsResource"
}
// End of class AwsKmsResource
func Type_AwsKmsResource_() _dafny.TypeDescriptor {
return type_AwsKmsResource_{}
}
type type_AwsKmsResource_ struct {
}
func (_this type_AwsKmsResource_) Default() interface{} {
return Companion_AwsResource_.Default()
}
func (_this type_AwsKmsResource_) String() string {
return "AwsArnParsing.AwsKmsResource"
}
func (_this *CompanionStruct_AwsKmsResource_) Is_(__source AwsResource) bool {
var _2_r AwsResource = (__source)
_ = _2_r
return Companion_Default___.ValidAwsKmsResource(_2_r)
}
// Definition of datatype AwsKmsIdentifier
type AwsKmsIdentifier struct {
Data_AwsKmsIdentifier_
}
func (_this AwsKmsIdentifier) Get_() Data_AwsKmsIdentifier_ {
return _this.Data_AwsKmsIdentifier_
}
type Data_AwsKmsIdentifier_ interface {
isAwsKmsIdentifier()
}
type CompanionStruct_AwsKmsIdentifier_ struct {
}
var Companion_AwsKmsIdentifier_ = CompanionStruct_AwsKmsIdentifier_{}
type AwsKmsIdentifier_AwsKmsArnIdentifier struct {
A AwsArn
}
func (AwsKmsIdentifier_AwsKmsArnIdentifier) isAwsKmsIdentifier() {}
func (CompanionStruct_AwsKmsIdentifier_) Create_AwsKmsArnIdentifier_(A AwsArn) AwsKmsIdentifier {
return AwsKmsIdentifier{AwsKmsIdentifier_AwsKmsArnIdentifier{A}}
}
func (_this AwsKmsIdentifier) Is_AwsKmsArnIdentifier() bool {
_, ok := _this.Get_().(AwsKmsIdentifier_AwsKmsArnIdentifier)
return ok
}
type AwsKmsIdentifier_AwsKmsRawResourceIdentifier struct {
R AwsResource
}
func (AwsKmsIdentifier_AwsKmsRawResourceIdentifier) isAwsKmsIdentifier() {}
func (CompanionStruct_AwsKmsIdentifier_) Create_AwsKmsRawResourceIdentifier_(R AwsResource) AwsKmsIdentifier {
return AwsKmsIdentifier{AwsKmsIdentifier_AwsKmsRawResourceIdentifier{R}}
}
func (_this AwsKmsIdentifier) Is_AwsKmsRawResourceIdentifier() bool {
_, ok := _this.Get_().(AwsKmsIdentifier_AwsKmsRawResourceIdentifier)
return ok
}
func (CompanionStruct_AwsKmsIdentifier_) Default() AwsKmsIdentifier {
return Companion_AwsKmsIdentifier_.Create_AwsKmsArnIdentifier_(Companion_AwsArn_.Default())
}
func (_this AwsKmsIdentifier) Dtor_a() AwsArn {
return _this.Get_().(AwsKmsIdentifier_AwsKmsArnIdentifier).A
}
func (_this AwsKmsIdentifier) Dtor_r() AwsResource {
return _this.Get_().(AwsKmsIdentifier_AwsKmsRawResourceIdentifier).R
}
func (_this AwsKmsIdentifier) String() string {
switch data := _this.Get_().(type) {
case nil:
return "null"
case AwsKmsIdentifier_AwsKmsArnIdentifier:
{
return "AwsArnParsing.AwsKmsIdentifier.AwsKmsArnIdentifier" + "(" + _dafny.String(data.A) + ")"
}
case AwsKmsIdentifier_AwsKmsRawResourceIdentifier:
{
return "AwsArnParsing.AwsKmsIdentifier.AwsKmsRawResourceIdentifier" + "(" + _dafny.String(data.R) + ")"
}
default:
{
return "<unexpected>"
}
}
}
func (_this AwsKmsIdentifier) Equals(other AwsKmsIdentifier) bool {
switch data1 := _this.Get_().(type) {
case AwsKmsIdentifier_AwsKmsArnIdentifier:
{
data2, ok := other.Get_().(AwsKmsIdentifier_AwsKmsArnIdentifier)
return ok && data1.A.Equals(data2.A)
}
case AwsKmsIdentifier_AwsKmsRawResourceIdentifier:
{
data2, ok := other.Get_().(AwsKmsIdentifier_AwsKmsRawResourceIdentifier)
return ok && data1.R.Equals(data2.R)
}
default:
{
return false // unexpected
}
}
}
func (_this AwsKmsIdentifier) EqualsGeneric(other interface{}) bool {
typed, ok := other.(AwsKmsIdentifier)
return ok && _this.Equals(typed)
}
func Type_AwsKmsIdentifier_() _dafny.TypeDescriptor {
return type_AwsKmsIdentifier_{}
}
type type_AwsKmsIdentifier_ struct {
}
func (_this type_AwsKmsIdentifier_) Default() interface{} {
return Companion_AwsKmsIdentifier_.Default()
}
func (_this type_AwsKmsIdentifier_) String() string {
return "AwsArnParsing.AwsKmsIdentifier"
}
func (_this AwsKmsIdentifier) ParentTraits_() []*_dafny.TraitID {
return [](*_dafny.TraitID){}
}
var _ _dafny.TraitOffspring = AwsKmsIdentifier{}
func (_this AwsKmsIdentifier) ToString() _dafny.Sequence {
{
var _source0 AwsKmsIdentifier = _this
_ = _source0
{
if _source0.Is_AwsKmsArnIdentifier() {
var _0_a AwsArn = _source0.Get_().(AwsKmsIdentifier_AwsKmsArnIdentifier).A
_ = _0_a
return (_0_a).ToString()
}
}
{
var _1_r AwsResource = _source0.Get_().(AwsKmsIdentifier_AwsKmsRawResourceIdentifier).R
_ = _1_r
return (_1_r).ToString()
}
}
}
// End of datatype AwsKmsIdentifier
// Definition of class AmazonDynamodbTableArn
type AmazonDynamodbTableArn struct {
}
func New_AmazonDynamodbTableArn_() *AmazonDynamodbTableArn {
_this := AmazonDynamodbTableArn{}
return &_this
}
type CompanionStruct_AmazonDynamodbTableArn_ struct {
}
var Companion_AmazonDynamodbTableArn_ = CompanionStruct_AmazonDynamodbTableArn_{}
func (*AmazonDynamodbTableArn) String() string {
return "AwsArnParsing.AmazonDynamodbTableArn"
}
// End of class AmazonDynamodbTableArn
func Type_AmazonDynamodbTableArn_() _dafny.TypeDescriptor {
return type_AmazonDynamodbTableArn_{}
}
type type_AmazonDynamodbTableArn_ struct {
}
func (_this type_AmazonDynamodbTableArn_) Default() interface{} {
return Companion_AwsArn_.Default()
}
func (_this type_AmazonDynamodbTableArn_) String() string {
return "AwsArnParsing.AmazonDynamodbTableArn"
}
func (_this *CompanionStruct_AmazonDynamodbTableArn_) Is_(__source AwsArn) bool {
var _2_a AwsArn = (__source)
_ = _2_a
return Companion_Default___.ValidAmazonDynamodbArn(_2_a)
}
// Definition of class AmazonDynamodbResource
type AmazonDynamodbResource struct {
}
func New_AmazonDynamodbResource_() *AmazonDynamodbResource {
_this := AmazonDynamodbResource{}
return &_this
}
type CompanionStruct_AmazonDynamodbResource_ struct {
}
var Companion_AmazonDynamodbResource_ = CompanionStruct_AmazonDynamodbResource_{}
func (*AmazonDynamodbResource) String() string {
return "AwsArnParsing.AmazonDynamodbResource"
}
// End of class AmazonDynamodbResource
func Type_AmazonDynamodbResource_() _dafny.TypeDescriptor {
return type_AmazonDynamodbResource_{}
}
type type_AmazonDynamodbResource_ struct {
}
func (_this type_AmazonDynamodbResource_) Default() interface{} {
return Companion_AwsResource_.Default()
}
func (_this type_AmazonDynamodbResource_) String() string {
return "AwsArnParsing.AmazonDynamodbResource"
}
func (_this *CompanionStruct_AmazonDynamodbResource_) Is_(__source AwsResource) bool {
var _3_r AwsResource = (__source)
_ = _3_r
return Companion_Default___.ValidAmazonDynamodbResource(_3_r)
}
// Definition of datatype AmazonDynamodbTableName
type AmazonDynamodbTableName struct {
Data_AmazonDynamodbTableName_
}
func (_this AmazonDynamodbTableName) Get_() Data_AmazonDynamodbTableName_ {
return _this.Data_AmazonDynamodbTableName_
}
type Data_AmazonDynamodbTableName_ interface {
isAmazonDynamodbTableName()
}
type CompanionStruct_AmazonDynamodbTableName_ struct {
}
var Companion_AmazonDynamodbTableName_ = CompanionStruct_AmazonDynamodbTableName_{}
type AmazonDynamodbTableName_AmazonDynamodbTableArn struct {
A AwsArn
}
func (AmazonDynamodbTableName_AmazonDynamodbTableArn) isAmazonDynamodbTableName() {}
func (CompanionStruct_AmazonDynamodbTableName_) Create_AmazonDynamodbTableArn_(A AwsArn) AmazonDynamodbTableName {
return AmazonDynamodbTableName{AmazonDynamodbTableName_AmazonDynamodbTableArn{A}}
}
func (_this AmazonDynamodbTableName) Is_AmazonDynamodbTableArn() bool {
_, ok := _this.Get_().(AmazonDynamodbTableName_AmazonDynamodbTableArn)
return ok
}
func (CompanionStruct_AmazonDynamodbTableName_) Default() AmazonDynamodbTableName {
return Companion_AmazonDynamodbTableName_.Create_AmazonDynamodbTableArn_(Companion_AwsArn_.Default())
}
func (_this AmazonDynamodbTableName) Dtor_a() AwsArn {
return _this.Get_().(AmazonDynamodbTableName_AmazonDynamodbTableArn).A
}
func (_this AmazonDynamodbTableName) String() string {
switch data := _this.Get_().(type) {
case nil:
return "null"
case AmazonDynamodbTableName_AmazonDynamodbTableArn:
{
return "AwsArnParsing.AmazonDynamodbTableName.AmazonDynamodbTableArn" + "(" + _dafny.String(data.A) + ")"
}
default:
{
return "<unexpected>"
}
}
}
func (_this AmazonDynamodbTableName) Equals(other AmazonDynamodbTableName) bool {
switch data1 := _this.Get_().(type) {
case AmazonDynamodbTableName_AmazonDynamodbTableArn:
{
data2, ok := other.Get_().(AmazonDynamodbTableName_AmazonDynamodbTableArn)
return ok && data1.A.Equals(data2.A)
}
default:
{
return false // unexpected
}
}
}
func (_this AmazonDynamodbTableName) EqualsGeneric(other interface{}) bool {
typed, ok := other.(AmazonDynamodbTableName)
return ok && _this.Equals(typed)
}
func Type_AmazonDynamodbTableName_() _dafny.TypeDescriptor {
return type_AmazonDynamodbTableName_{}
}
type type_AmazonDynamodbTableName_ struct {
}
func (_this type_AmazonDynamodbTableName_) Default() interface{} {
return Companion_AmazonDynamodbTableName_.Default()
}
func (_this type_AmazonDynamodbTableName_) String() string {
return "AwsArnParsing.AmazonDynamodbTableName"
}
func (_this AmazonDynamodbTableName) ParentTraits_() []*_dafny.TraitID {
return [](*_dafny.TraitID){}
}
var _ _dafny.TraitOffspring = AmazonDynamodbTableName{}
func (_this AmazonDynamodbTableName) GetTableName() _dafny.Sequence {
{
var _source0 AmazonDynamodbTableName = _this
_ = _source0
{
var _0_a AwsArn = _source0.Get_().(AmazonDynamodbTableName_AmazonDynamodbTableArn).A
_ = _0_a
return ((_0_a).Dtor_resource()).Dtor_value()
}
}
}
// End of datatype AmazonDynamodbTableName
// Definition of class AwsKmsIdentifierString
type AwsKmsIdentifierString struct {
}
func New_AwsKmsIdentifierString_() *AwsKmsIdentifierString {
_this := AwsKmsIdentifierString{}
return &_this
}
type CompanionStruct_AwsKmsIdentifierString_ struct {
}
var Companion_AwsKmsIdentifierString_ = CompanionStruct_AwsKmsIdentifierString_{}
func (*AwsKmsIdentifierString) String() string {
return "AwsArnParsing.AwsKmsIdentifierString"
}
// End of class AwsKmsIdentifierString
func Type_AwsKmsIdentifierString_() _dafny.TypeDescriptor {
return type_AwsKmsIdentifierString_{}
}
type type_AwsKmsIdentifierString_ struct {
}
func (_this type_AwsKmsIdentifierString_) Default() interface{} {
return _dafny.EmptySeq.SetString()
}
func (_this type_AwsKmsIdentifierString_) String() string {
return "AwsArnParsing.AwsKmsIdentifierString"
}
func (_this *CompanionStruct_AwsKmsIdentifierString_) Is_(__source _dafny.Sequence) bool {
var _1_s _dafny.Sequence = (__source)
_ = _1_s
return (Companion_Default___.IsAwsKmsIdentifierString(_1_s)).Is_Success()
}