code: def tag_create(self, label, instances=None, domains=None, nodebalancers=None,
                     volumes=None, entities=[]):
          linode_ids, nodebalancer_ids, domain_ids, volume_ids = [], [], [], []
          sorter = zip((linode_ids, nodebalancer_ids, domain_ids, volume_ids),
                       (instances, nodebalancers, domains, volumes))
          for id_list, input_list in sorter:
              if input_list is not None:
                  for cur in input_list:
                      if isinstance(cur, int):
                          id_list.append(cur)
                      else:
                          id_list.append(cur.id)
          type_map = {
              Instance: linode_ids,
              NodeBalancer: nodebalancer_ids,
              Domain: domain_ids,
              Volume: volume_ids,
          }
          for e in entities:
              if type(e) in type_map:
                  type_map[type(e)].append(e.id)
              else:
                  raise ValueError('Unsupported entity type {}'.format(type(e)))
          params = {
              'label': label,
              'linodes': linode_ids or None,
              'nodebalancers': nodebalancer_ids or None,
              'domains': domain_ids or None,
              'volumes': volume_ids or None,
          }
          result = self.post('/tags', data=params)
          if not 'label' in result:
              raise UnexpectedResponseError('Unexpected response when creating Tag!', json=result)
          t = Tag(self, result['label'], result)
          return t