Factory:  construct a job given its API representation

        .. note:

           This method assumes that the project found in the resource matches
           the client's project.

        :type resource: dict
        :param resource: dataset job representation returned from the API

        :type client: :class:`google.cloud.bigquery.client.Client`
        :param client: Client which holds credentials and project
                       configuration for the dataset.

        :rtype: :class:`google.cloud.bigquery.job.LoadJob`
        :returns: Job parsed from ``resource``.

def from_api_repr(cls, resource, client):
        """Factory:  construct a job given its API representation

        .. note:

           This method assumes that the project found in the resource matches
           the client's project.

        :type resource: dict
        :param resource: dataset job representation returned from the API

        :type client: :class:`google.cloud.bigquery.client.Client`
        :param client: Client which holds credentials and project
                       configuration for the dataset.

        :rtype: :class:`google.cloud.bigquery.job.LoadJob`
        :returns: Job parsed from ``resource``.
        """
        config_resource = resource.get("configuration", {})
        config = LoadJobConfig.from_api_repr(config_resource)
        # A load job requires a destination table.
        dest_config = config_resource["load"]["destinationTable"]
        ds_ref = DatasetReference(dest_config["projectId"], dest_config["datasetId"])
        destination = TableReference(ds_ref, dest_config["tableId"])
        # sourceUris will be absent if this is a file upload.
        source_uris = _helpers._get_sub_prop(config_resource, ["load", "sourceUris"])
        job_ref = _JobReference._from_api_repr(resource["jobReference"])
        job = cls(job_ref, source_uris, destination, client, config)
        job._set_properties(resource)
        return job