func convertDaxError()

in dax/internal/client/error.go [237:340]


func convertDaxError(e daxError) error {
	codes := e.CodeSequence()
	if len(codes) < 2 {
		return e
	}
	md := protocol.ResponseMetadata{
		StatusCode: e.StatusCode(),
		RequestID:  e.RequestID(),
	}
	switch codes[1] {
	case 23:
		if len(codes) > 2 {
			switch codes[2] {
			case 24:
				return &dynamodb.ResourceNotFoundException{
					RespMetadata: md,
					Message_:     aws.String(e.Message()),
				}
			case 35:
				return &dynamodb.ResourceInUseException{
					RespMetadata: md,
					Message_:     aws.String(e.Message()),
				}
			}
		}
	case 37:
		if len(codes) > 3 {
			switch codes[3] {
			case 39:
				if len(codes) > 4 {
					switch codes[4] {
					case 40:
						return &dynamodb.ProvisionedThroughputExceededException{
							RespMetadata: md,
							Message_:     aws.String(e.Message()),
						}
					case 41:
						return &dynamodb.ResourceNotFoundException{
							RespMetadata: md,
							Message_:     aws.String(e.Message()),
						}
					case 43:
						return &dynamodb.ConditionalCheckFailedException{
							RespMetadata: md,
							Message_:     aws.String(e.Message()),
						}
					case 45:
						return &dynamodb.ResourceInUseException{
							RespMetadata: md,
							Message_:     aws.String(e.Message())}
					case 46:
						// there's no dynamodb.ValidationException type
						return awserr.NewRequestFailure(awserr.New(ErrCodeValidationException, e.Message(), nil), e.StatusCode(), e.RequestID())
					case 47:
						return &dynamodb.InternalServerError{
							RespMetadata: md,
							Message_:     aws.String(e.Message()),
						}
					case 48:
						return &dynamodb.ItemCollectionSizeLimitExceededException{
							RespMetadata: md,
							Message_:     aws.String(e.Message()),
						}
					case 49:
						return &dynamodb.LimitExceededException{
							RespMetadata: md,
							Message_:     aws.String(e.Message()),
						}
					case 50:
						// there's no dynamodb.ThrottlingException type
						return awserr.NewRequestFailure(awserr.New(ErrCodeThrottlingException, e.Message(), nil), e.StatusCode(), e.RequestID())
					case 57:
						return &dynamodb.TransactionConflictException{
							RespMetadata: md,
							Message_:     aws.String(e.Message()),
						}
					case 58:
						tcFailure, ok := e.(*daxTransactionCanceledFailure)
						if ok {
							return &dynamodb.TransactionCanceledException{
								RespMetadata:        md,
								Message_:            aws.String(e.Message()),
								CancellationReasons: tcFailure.cancellationReasons,
							}
						}
					case 59:
						return &dynamodb.TransactionInProgressException{
							RespMetadata: md,
							Message_:     aws.String(e.Message()),
						}
					case 60:
						return &dynamodb.IdempotentParameterMismatchException{
							RespMetadata: md,
							Message_:     aws.String(e.Message()),
						}
					}
				}
			case 44:
				return awserr.NewRequestFailure(awserr.New(ErrCodeNotImplemented, e.Message(), nil), e.StatusCode(), e.RequestID())
			}
		}
	}
	return awserr.NewRequestFailure(awserr.New(ErrCodeUnknown, e.Message(), nil), e.StatusCode(), e.RequestID())
}