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 f6c697d
Showing 1 changed file with 77 additions and 0 deletions.
77 changes: 77 additions & 0 deletions pkg/aws/errors/errors.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
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"
NoSuchEntity = "NoSuchEntity"
InvalidRouteTableID = "InvalidRouteTableID.NotFound"
InvalidInternetGatewayID = "InvalidInternetGatewayID.NotFound"
InvalidVpcID = "InvalidVpcID.NotFound"
InvalidAllocationID = "InvalidAllocationID.NotFound"
InvalidGroup = "InvalidGroup.NotFound"
InvalidSubnetID = "InvalidSubnetId.NotFound"
)

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 f6c697d

Please sign in to comment.