code: def subscribe(self, topic, protocol, endpoint):
          
          params = {'ContentType' : 'JSON',
                    'TopicArn' : topic,
                    'Protocol' : protocol,
                    'Endpoint' : endpoint}
          response = self.make_request('Subscribe', params, '/', 'GET')
          body = response.read()
          if response.status == 200:
              return json.loads(body)
          else:
              boto.log.error('%s %s' % (response.status, response.reason))
              boto.log.error('%s' % body)
              raise self.ResponseError(response.status, response.reason, body)
docs: Subscribe to a Topic.
  
          :type topic: string
          :param topic: The name of the new topic.
  
          :type protocol: string
          :param protocol: The protocol used to communicate with
                           the subscriber.  Current choices are:
                           email|email-json|http|https|sqs
  
          :type endpoint: string
          :param endpoint: The location of the endpoint for
                           the subscriber.
                           * For email, this would be a valid email address
                           * For email-json, this would be a valid email address
                           * For http, this would be a URL beginning with http
                           * For https, this would be a URL beginning with https
                           * For sqs, this would be the ARN of an SQS Queue