<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _generate_api_gateway(self):
 """ Generate the full configuration for the API Gateway, and add to self.tf_conf """

        self.tf_conf['resource']['aws_api_gateway_rest_api']['rest_api'] = {
            'name': self.resource_name,
            'description': self.description
        }
        self.tf_conf['output']['rest_api_id'] = {
            'value': '${aws_api_gateway_rest_api.rest_api.id}'
        }
        # finally, the deployment
        """
        @NOTE Currently, Terraform can't enable metrics collection,
        request logging or rate limiting on API Gateway services.

        @TODO update this when
        <https://github.com/hashicorp/terraform/issues/6612> is fixed.

        @see https://github.com/jantman/webhook2lambda2sqs/issues/7
        @see https://github.com/jantman/webhook2lambda2sqs/issues/16
        """
        self.tf_conf['output']['base_url'] = {
            'value': 'https://${aws_api_gateway_rest_api.rest_api.id}.'
                     'execute-api.%s.amazonaws.com/%s/' % (
                         self.aws_region, self.config.stage_name)
        }
        # generate the endpoint configs
        endpoints = self.config.get('endpoints')
        for ep in sorted(endpoints.keys()):
            self._generate_endpoint(ep, endpoints[ep]['method'])