'Update workspace.
Update an existing workspace with new or modified data.
You must provide component objects defining the content
of the updated workspace.
:param workspace_id: The workspace ID.
:param name: The name of the workspace.
:param description: The description of the workspace.
:param language: The language of the workspace.
:param intents: An array of CreateIntent objects defining the
intents for the workspace.
:param entities: An array of CreateEntity objects defining the
entities for the workspace.
:param dialog_nodes: An array of CreateDialogNode objects defining
the nodes in the workspace dialog.
:param counterexamples: An array of CreateExample objects defining
input examples that have been marked as irrelevant input.
:param metadata: Any metadata related to the workspace.'

def update_workspace(self, workspace_id, name=None, description=None, language=None, intents=None, entities=None, dialog_nodes=None, counterexamples=None, metadata=None):

    params = {'version': self.version}
    data = {'name': name, 'description': description, 'language': language, 'intents': intents, 'entities': entities, 'dialog_nodes': dialog_nodes, 'counterexamples': counterexamples, 'metadata': metadata}
    return self.request(method='POST', url='/v1/workspaces/{0}'.format(workspace_id), params=params, json=data, accept_json=True)
