public function getRefund($request)
    {
        if (is_array($request)) {
            $request = RequestCreator::create(GetSubscriptionRequest::class, $request);
        } else if (!($request instanceof GetRefundRequest)) {
            $request = new GetRefundRequest($request);
        }

        ObjectRecursiveValidator::validate($request);
        $serializer = new GetRefundSerializer($request);
        $transport = new GetRefundTransport($serializer);

        return $this->execute($transport, GetRefundResponse::class);
    }
public function getRefund($request)
    {
        if (is_array($request)) {
            $request = RequestCreator::create(GetSubscriptionRequest::class, $request);
        } else if (!($request instanceof GetRefundRequest)) {
            $request = new GetRefundRequest($request);
        }

        ObjectRecursiveValidator::validate($request);
        $serializer = new GetRefundSerializer($request);
        $transport = new GetRefundTransport($serializer);

        return $this->execute($transport, GetRefundResponse::class);
    }
@param string|array|GetRefundRequest $request

@return AbstractResponse|GetRefundResponse
@throws ResponseException
@throws TransportException