code: def construct_for(self, service_name, resource_name, base_class=None):
          
          details = self.details_class(
              self.session,
              service_name,
              resource_name,
              loader=self.loader
          )
  
          attrs = {
              '_details': details,
          }
  
          # Determine what we should call it.
          klass_name = self._build_class_name(resource_name)
  
          # Construct what the class ought to have on it.
          attrs.update(self._build_methods(details))
  
          if base_class is None:
              base_class = self.base_resource_class
  
          # Create the class.
          return type(
              klass_name,
              (base_class,),
              attrs
          )
docs: Builds a new, specialized ``Resource`` subclass as part of a given
          service.
  
          This will load the ``ResourceJSON``, determine the correct
          mappings/methods & constructs a brand new class with those methods on
          it.
  
          :param service_name: The name of the service to construct a resource
              for. Ex. ``sqs``, ``sns``, ``dynamodb``, etc.
          :type service_name: string
  
          :param resource_name: The name of the ``Resource``. Ex.
              ``Queue``, ``Notification``, ``Table``, etc.
          :type resource_name: string
  
          :returns: A new resource class for that service