Skip to content

Commit

Permalink
OCM-3963 | feat: Moving error helpers to ocm-common
Browse files Browse the repository at this point in the history
  • Loading branch information
den-rgb committed Nov 24, 2023
1 parent 9c5e842 commit fa03cb8
Showing 1 changed file with 70 additions and 0 deletions.
70 changes: 70 additions & 0 deletions pkg/aws/errors/errors.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
package aws

import (
"errors"

iamtypes "github.com/aws/aws-sdk-go-v2/service/iam/types"
"github.com/aws/smithy-go"
)

const (
invalidClientTokenID = "InvalidClientTokenId"
AccessDenied = "AccessDenied"
forbidden = "Forbidden"
dryRunOperation = "DryRunOperation"
unauthorizedOperation = "UnauthorizedOperation"
authFailure = "AuthFailure"
optInRequired = "OptInRequired"
vpcLimitExceeded = "VpcLimitExceeded"
limitExceeded = "LimitExceeded"
unrecognizedClientException = "UnrecognizedClientException"
incompleteSignature = "IncompleteSignature"
AccessDeniedException = "AccessDeniedException"
NoSuchResourceException = "NoSuchResourceException"
Throttling = "Throttling"
SubnetNotFound = "InvalidSubnetID.NotFound"
volumeTypeNotAvailableInZone = "VolumeTypeNotAvailableInZone"
invalidParameterValue = "InvalidParameterValue"
NoSuchHostedZone = "NoSuchHostedZone"
dependencyViolation = "DependencyViolation"
)

func IsErrorCode(err error, code string) bool {
var apiErr smithy.APIError
return errors.As(err, &apiErr) && apiErr.ErrorCode() == code
}

func IsSubnetNotFoundError(err error) bool {
return IsErrorCode(err, SubnetNotFound)
}

func IsThrottle(err error) bool {
return IsErrorCode(err, Throttling)
}

func IsEntityAlreadyExistsException(err error) bool {
var entityAlreadyExists *iamtypes.EntityAlreadyExistsException
return errors.As(err, &entityAlreadyExists)
}

func IsNoSuchEntityException(err error) bool {
var noSuchEntity *iamtypes.NoSuchEntityException
return errors.As(err, &noSuchEntity)
}

func IsAccessDeniedException(err error) bool {
return IsErrorCode(err, AccessDenied)
}

func IsForbiddenException(err error) bool {
return IsErrorCode(err, forbidden)
}

func IsLimitExceededException(err error) bool {
return IsErrorCode(err, limitExceeded)
}

func IsInvalidTokenException(err error) bool {
return IsErrorCode(err, invalidClientTokenID)
}

0 comments on commit fa03cb8

Please sign in to comment.