def stackscript_create(self, label, script, images, desc=None, public=False, **kwargs):
image_list = None<EOL>if type(images) is list or type(images) is PaginatedList:<EOL><INDENT>image_list = [d.id if issubclass(type(d), Base) else d for d in images ]<EOL><DEDENT>elif type(images) is Image:<EOL><INDENT>image_list = [images.id]<EOL><DEDENT>elif type(images) is str:<EOL><INDENT>image_list = [images]<EOL><DEDENT>else:<EOL><INDENT>raise ValueError('<STR_LIT>')<EOL><DEDENT>script_body = script<EOL>if not script.startswith("<STR_LIT>"):<EOL><INDENT>import os<EOL>if os.path.isfile(script):<EOL><INDENT>with open(script) as f:<EOL><INDENT>script_body = f.read()<EOL><DEDENT><DEDENT>else:<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT><DEDENT>params = {<EOL>"<STR_LIT:label>": label,<EOL>"<STR_LIT>": image_list,<EOL>"<STR_LIT>": public,<EOL>"<STR_LIT>": script_body,<EOL>"<STR_LIT:description>": desc if desc else '<STR_LIT>',<EOL>}<EOL>params.update(kwargs)<EOL>result = self.client.post('<STR_LIT>', data=params)<EOL>if not '<STR_LIT:id>' in result:<EOL><INDENT>raise UnexpectedResponseError('<STR_LIT>', json=result)<EOL><DEDENT>s = StackScript(self.client, result['<STR_LIT:id>'], result)<EOL>return s<EOL>
Creates a new :any:`StackScript` on your account.

:param label: The label for this StackScript.
:type label: str
:param script: The script to run when an :any:`Instance` is deployed with
               this StackScript.  Must begin with a shebang (#!).
:type script: str
:param images: A list of :any:`Images<Image>` that this StackScript
               supports.  Instances will not be deployed from this
               StackScript unless deployed from one of these Images.
:type images: list of Image
:param desc: A description for this StackScript.
:type desc: str
:param public: Whether this StackScript is public.  Defaults to False.
               Once a StackScript is made public, it may not be set
               back to private.
:type public: bool

:returns: The new StackScript
:rtype: StackScript