def get_analysis_process(analysis_process_url, auth_headers, process_id, http_requests):
    """Checks the submission envelope for an analysis_process with a process_id that matches the analysis workflow id.

    Args:
        analysis_process_url (str): The url for creating the analysis_process.
        auth_headers (dict): Dict representing headers to use for auth.
        process_id (str): Required field of the analysis_process, the UUID of the analysis workflow in Cromwell.
        http_requests (http_requests.HttpRequests): The HttpRequests object to use for talking to Ingest.

    Returns:
        process (dict or None): A dict represents the analysis_process.

    Raises:
        requests.HTTPError: For 4xx errors or 5xx errors beyond timeout.
    """
    response = http_requests.get(analysis_process_url, headers=auth_headers)
    content = response.json().get('_embedded')

    if content:
        for process in content.get('processes'):
            if process['content']['process_core']['process_id'] == process_id:
                print(
                    'Found existing analysis_process for workflow {0} in {1}'.format(
                        process_id, analysis_process_url
                    )
                )
                return process
    return None