docs: def Clone(self,network_id,name=None,cpu=None,memory=None,group_id=None,alias=None,password=None,ip_address=None,
  	          storage_type=None,type=None,primary_dns=None,secondary_dns=None,
  			  custom_fields=None,ttl=None,managed_os=False,description=None,
  			  source_server_password=None,cpu_autoscale_policy_id=None,anti_affinity_policy_id=None,
  			  packages=[],count=1):
  		"""Creates one or more clones of existing server.
  
  		https://www.centurylinkcloud.com/api-docs/v2/#servers-create-server
  
  		Set ttl as number of seconds before server is to be terminated.
  
  		* - network_id is currently a required parameter.  This will change to optional once APIs are available to
  		    return the network id of self.
  		* - if no password is supplied will reuse the password of self.  Is this the expected behavior?  Take note
  		    there is no way to for a system generated password with this pattern since we cannot leave as None
  		* - any DNS settings from self aren't propogated to clone since they are unknown at system level and
  		    the clone process will touch them
  		* - no change to the disk layout we will clone all
  		* - clone will not replicate managed OS setting from self so this must be explicitly set
  
  		>>> d = clc.v2.Datacenter()
  		>>> clc.v2.Server(alias='BTDI',id='WA1BTDIAPI207').Clone(network_id=d.Networks().networks[0].id,count=2)
  		0
  
  		"""
  
  		if not name:  name = re.search("%s(.+)\d{2}$" % self.alias,self.name).group(1)
  		#if not description and self.description:  description = self.description
  		if not cpu:  cpu = self.cpu
  		if not memory:  memory = self.memory
  		if not group_id:  group_id = self.group_id
  		if not alias:  alias = self.alias
  		if not source_server_password: source_server_password = self.Credentials()['password']
  		if not password: password = source_server_password	# is this the expected behavior?
  		if not storage_type:  storage_type = self.storage_type
  		if not type:  type = self.type
  		if not storage_type:  storage_type = self.storage_type
  		if not custom_fields and len(self.custom_fields): custom_fields = self.custom_fields
  		if not description:  description = self.description
  		# TODO - #if not cpu_autoscale_policy_id:  cpu_autoscale_policy_id =
  		# TODO - #if not anti_affinity_policy_id:  anti_affinity_policy_id =
  		# TODO - need to get network_id of self, not currently exposed via API :(
  
  		requests_lst = []
  		for i in range(0,count):
  			requests_lst.append(Server.Create( \
  			            name=name,cpu=cpu,memory=memory,group_id=group_id,network_id=network_id,alias=self.alias,
  						password=password,ip_address=ip_address,storage_type=storage_type,type=type,
  						primary_dns=primary_dns,secondary_dns=secondary_dns,
  						custom_fields=custom_fields,ttl=ttl,managed_os=managed_os,description=description,
                          source_server_password=source_server_password,cpu_autoscale_policy_id=cpu_autoscale_policy_id,
  						anti_affinity_policy_id=anti_affinity_policy_id,packages=packages,
  						template=self.id,session=self.session))
  
  		return(sum(requests_lst))