update(context, id, etag, name, label, next_topic_id, active,
              product_id, data)

    Update a Topic.

    >>> dcictl topic-update [OPTIONS]

    :param string id: ID of the Topic [required]
    :param string etag: Entity tag of the Topic resource [required]
    :param string name: Name of the Topic
    :param string component_types: list of component types separated by commas
    :param string label: Label of the Topic
    :param string data: JSON data to pass during remote CI update
    :param boolean active: Set the topic in the active state
    :param string product_id: The product the topic belongs to
    :param string next_topic_id: The ID of the next topic for upgrades

def update(context, id, etag, name, component_types,
           label, next_topic_id, active, product_id, data):
    """update(context, id, etag, name, label, next_topic_id, active,
              product_id, data)

    Update a Topic.

    >>> dcictl topic-update [OPTIONS]

    :param string id: ID of the Topic [required]
    :param string etag: Entity tag of the Topic resource [required]
    :param string name: Name of the Topic
    :param string component_types: list of component types separated by commas
    :param string label: Label of the Topic
    :param string data: JSON data to pass during remote CI update
    :param boolean active: Set the topic in the active state
    :param string product_id: The product the topic belongs to
    :param string next_topic_id: The ID of the next topic for upgrades
    """

    if component_types:
        component_types = component_types.split(',')

    result = topic.update(context, id=id, etag=etag, name=name,
                          component_types=component_types,
                          label=label, next_topic_id=next_topic_id,
                          state=utils.active_string(active),
                          product_id=product_id, data=data)
    utils.format_output(result, context.format)