'Returns events related to clusters, security groups,
snapshots, and parameter groups for the past 14 days. Events
specific to a particular cluster, security group, snapshot or
parameter group can be obtained by providing the name as a
parameter. By default, the past hour of events are returned.
:type source_identifier: string
:param source_identifier:
The identifier of the event source for which events will be returned.
If this parameter is not specified, then all sources are included
in the response.
Constraints:
If SourceIdentifier is supplied, SourceType must also be provided.
+ Specify a cluster identifier when SourceType is `cluster`.
+ Specify a cluster security group name when SourceType is `cluster-
security-group`.
+ Specify a cluster parameter group name when SourceType is `cluster-
parameter-group`.
+ Specify a cluster snapshot identifier when SourceType is `cluster-
snapshot`.
:type source_type: string
:param source_type:
The event source to retrieve events for. If no value is specified, all
events are returned.
Constraints:
If SourceType is supplied, SourceIdentifier must also be provided.
+ Specify `cluster` when SourceIdentifier is a cluster identifier.
+ Specify `cluster-security-group` when SourceIdentifier is a cluster
security group name.
+ Specify `cluster-parameter-group` when SourceIdentifier is a cluster
parameter group name.
+ Specify `cluster-snapshot` when SourceIdentifier is a cluster
snapshot identifier.
:type start_time: timestamp
:param start_time: The beginning of the time interval to retrieve
events for, specified in ISO 8601 format. For more information
about ISO 8601, go to the `ISO8601 Wikipedia page.`_
Example: `2009-07-08T18:00Z`
:type end_time: timestamp
:param end_time: The end of the time interval for which to retrieve
events, specified in ISO 8601 format. For more information about
ISO 8601, go to the `ISO8601 Wikipedia page.`_
Example: `2009-07-08T18:00Z`
:type duration: integer
:param duration: The number of minutes prior to the time of the request
for which to retrieve events. For example, if the request is sent
at 18:00 and you specify a duration of 60, then only events which
have occurred after 17:00 will be returned.
Default: `60`
:type max_records: integer
:param max_records: The maximum number of response records to return in
each call. If the number of remaining response records exceeds the
specified `MaxRecords` value, a value is returned in a `marker`
field of the response. You can retrieve the next set of records by
retrying the command with the returned marker value.
Default: `100`
Constraints: minimum 20, maximum 100.
:type marker: string
:param marker: An optional parameter that specifies the starting point
to return a set of response records. When the results of a
DescribeEvents request exceed the value specified in `MaxRecords`,
AWS returns a value in the `Marker` field of the response. You can
retrieve the next set of response records by providing the returned
marker value in the `Marker` parameter and retrying the request.'

def describe_events(self, source_identifier=None, source_type=None, start_time=None, end_time=None, duration=None, max_records=None, marker=None):

    params = {}
    if (source_identifier is not None):
        params['SourceIdentifier'] = source_identifier
    if (source_type is not None):
        params['SourceType'] = source_type
    if (start_time is not None):
        params['StartTime'] = start_time
    if (end_time is not None):
        params['EndTime'] = end_time
    if (duration is not None):
        params['Duration'] = duration
    if (max_records is not None):
        params['MaxRecords'] = max_records
    if (marker is not None):
        params['Marker'] = marker
    return self._make_request(action='DescribeEvents', verb='POST', path='/', params=params)
