public function create($appId, $scanId, $input, array $queryParams = [])
    {
        if ($input instanceof IssueBuilder) {
            $inputArray = $input->toArray();
            $defaultInput = true;
        } else {
            $inputArray = [];
            foreach ($input as $key => $value) {
                if ($value instanceof BaseBuilder) {
                    $inputArray[$key] = $value->toArray();
                } else if (is_array($value)) {
                    foreach ($value as $key2 => $value2) {
                        if ($value2 instanceof BaseBuilder) {
                            $inputArray[$key][$key2] = $value2->toArray();
                        } else if (is_string($value2)) {
                            $inputArray[$key][$key2] = $value2;
                        }
                    }
                }
            }
            $defaultInput = false;
        }

        $response = $this->api
            ->applications()
            ->scans()
            ->issues()
            ->create($appId, $scanId, $inputArray, $queryParams, $defaultInput);

        return new IssueResponse($response);
    }