.. _int: https://docs.python.org/2/library/stdtypes.html

.. _str: https://docs.python.org/2/library/stdtypes.html

.. _Event: ../../vim/event/Event.rst

.. _chainId: ../../vim/event/Event.rst#chainId

.. _vim.Task: ../../vim/Task.rst

.. _VI API 2.5: ../../vim/version.rst#vimversionversion2

.. _createdTime: ../../vim/event/Event.rst#createdTime

.. _vim.TaskInfo: ../../vim/TaskInfo.rst

.. _vim.event.Event: ../../vim/event/Event.rst

.. _vSphere API 4.0: ../../vim/version.rst#vimversionversion5

.. _vim.ManagedEntity: ../../vim/ManagedEntity.rst

.. _EntityEventArgument: ../../vim/event/EntityEventArgument.rst

.. _vim.fault.InvalidState: ../../vim/fault/InvalidState.rst

.. _vim.fault.InvalidEvent: ../../vim/fault/InvalidEvent.rst

.. _vim.event.EventFilterSpec: ../../vim/event/EventFilterSpec.rst

.. _vim.event.EventDescription: ../../vim/event/EventDescription.rst

.. _vmodl.fault.InvalidArgument: ../../vmodl/fault/InvalidArgument.rst

.. _vim.event.EventHistoryCollector: ../../vim/event/EventHistoryCollector.rst

.. _vim.event.EventDescription.EventArgDesc: ../../vim/event/EventDescription/EventArgDesc.rst


vim.event.EventManager
======================
  This managed object type provides properties and methods for event management support. Event objects are used to record significant state changes of managed entities.




Attributes
----------
    description (`vim.event.EventDescription`_):
      privilege: System.View
       Static descriptive strings used in events.
    latestEvent (`vim.event.Event`_):
      privilege: System.View
       The latest event that happened on the VirtualCenter server.
    maxCollector (`int`_):
      privilege: System.View
       For each client, the maximum number of event collectors that can exist simultaneously.


Methods
-------


RetrieveArgumentDescription(eventTypeId):
   Retrieves the argument meta-data for a given Event type
  since: `vSphere API 4.0`_


  Privilege:
               System.View



  Args:
    eventTypeId (`str`_):




  Returns:
    [`vim.event.EventDescription.EventArgDesc`_]:



CreateCollectorForEvents(filter):
   Creates an event history collector, which is a specialized history collector that provides Event objects.Event collectors do not persist beyond the current client session.


  Privilege:
               System.View



  Args:
    filter (`vim.event.EventFilterSpec`_):
       The event query filter.




  Returns:
    `vim.event.EventHistoryCollector`_:
         The event collector based on the filter.

  Raises:

    `vim.fault.InvalidState`_:
       if there are more than the maximum number of event collectors.

    `vmodl.fault.InvalidArgument`_:
       if the filter is null or if any of its fields is invalid, such as an invalid reference to a managed object, alarm, or scheduled task, or an invalid event type or event chain id, etc.


LogUserEvent(entity, msg):
   Logs a user defined event against a particular managed entity.


  Privilege:



  Args:
    entity (`vim.ManagedEntity`_):
       The entity against which the event is logged. The entity must be the root folder, a DataCenter, a VirtualMachine, a HostSystem, or a ComputeResource.


    msg (`str`_):
       The message to be logged.




  Returns:
    None


  Raises:

    `vmodl.fault.InvalidArgument`_:
       if the entity is of a wrong type or the "msg" string is empty.


QueryEvents(filter):
   Returns the events in specified filter. Returns empty array when there are not any events qualified.


  Privilege:
               System.View



  Args:
    filter (`vim.event.EventFilterSpec`_):
       The events qualified.




  Returns:
    [`vim.event.Event`_]:
         The events matching the filter.

  Raises:

    `vmodl.fault.InvalidArgument`_:
       if the filter is null or if any of its fields is invalid, such as an invalid reference to a managed object, alarm, or scheduled task, or an invalid event type or event chain id, etc.


PostEvent(eventToPost, taskInfo):
   Posts the specified event, optionally associating it with a task. The event being posted should have the following info in it:
    * The ManagedEntity on which the event is being posted should be set in the appropriate `EntityEventArgument`_ field of the base `Event`_ class. It is OK to not set any entity, in which case the event is treated as an event about the system.
    * Some Event fields (`key`_, `chainId`_, `createdTime`_) are mandatory because of the nature of the structure, but any caller-supplied values will be overwritten by the system.
   If the event being posted is to be associated with an existing Task, the appropriate TaskInfo needs to be passed in. This task can either be one returned from a vSphere API operation or an extension task created by calling TaskManager#createTask.
  since: `VI API 2.5`_


  Privilege:
               Global.LogEvent



  Args:
    eventToPost (`vim.event.Event`_):
       Fully-specified event to post


    taskInfo (`vim.TaskInfo`_, optional):
       optional task associated with the event




  Returns:
    None


  Raises:

    `vim.fault.InvalidEvent`_:
       no longer thrown by this API

    `vmodl.fault.InvalidArgument`_:
       if
        * an invalid reference to a managed object is passed in to one of the `EntityEventArgument`_ fields
        * an invalid severity value is passed in an `EventEx`_.


