@resources.command(use_fields_as_options=('<STR_LIT:name>', '<STR_LIT>'))<EOL><INDENT>@click.option('<STR_LIT>', is_flag=True, default=False,<EOL>help='<STR_LIT>'<EOL>'<STR_LIT>')<EOL>@click.option('<STR_LIT>', is_flag=True, default=False,<EOL>help='<STR_LIT>')<EOL>@click.option('<STR_LIT>', required=False, type=int,<EOL>help='<STR_LIT>'<EOL>'<STR_LIT>'<EOL>'<STR_LIT>')<EOL>def update(self, pk=None, create_on_missing=False, monitor=False,<EOL>wait=False, timeout=None, name=None, organization=None):<DEDENT>
<EOL>project = self.get(pk, name=name, organization=organization)<EOL>pk = project['<STR_LIT:id>']<EOL>debug.log('<STR_LIT>',<EOL>header='<STR_LIT>')<EOL>result = client.get('<STR_LIT>' % pk)<EOL>if not result.json()['<STR_LIT>']:<EOL><INDENT>raise exc.CannotStartJob('<STR_LIT>')<EOL><DEDENT>debug.log('<STR_LIT>', header='<STR_LIT>')<EOL>result = client.post('<STR_LIT>' % pk)<EOL>project_update_id = result.json()['<STR_LIT>']<EOL>if monitor:<EOL><INDENT>return self.monitor(project_update_id, parent_pk=pk,<EOL>timeout=timeout)<EOL><DEDENT>elif wait:<EOL><INDENT>return self.wait(project_update_id, parent_pk=pk, timeout=timeout)<EOL><DEDENT>return {<EOL>'<STR_LIT:id>': project_update_id,<EOL>'<STR_LIT>': True,<EOL>}<EOL>
Trigger a project update job within Ansible Tower.
        Only meaningful on non-manual projects.

        =====API DOCS=====
        Update the given project.

        :param pk: Primary key of the project to be updated.
        :type pk: int
        :param monitor: Flag that if set, immediately calls ``monitor`` on the newly launched project update
                        rather than exiting with a success.
        :type monitor: bool
        :param wait: Flag that if set, monitor the status of the project update, but do not print while it is
                     in progress.
        :type wait: bool
        :param timeout: If provided with ``monitor`` flag set, this attempt will time out after the given number
                        of seconds.
        :type timeout: int
        :param name: Name of the project to be updated if ``pk`` is not set.
        :type name: str
        :param organization: Primary key or name of the organization the project to be updated belonging to if
                             ``pk`` is not set.
        :type organization: str
        :returns: Result of subsequent ``monitor`` call if ``monitor`` flag is on; Result of subsequent ``wait``
                  call if ``wait`` flag is on; dictionary of "status" if none of the two flags are on.
        :rtype: dict
        :raises tower_cli.exceptions.CannotStartJob: When the project cannot be updated.

        =====API DOCS=====