def describe_events(self, application=None, environment_name=None, environment_id=None, start_time=None, end_time=None, severity=None, request_id=None, template=None, version_label=None, max_records=None, next_token=None): request = Request() request.set_operation('DescribeEvents') if application is not None: request.set_app_name(application) if environment_name is not None: request.set_env_name(environment_name) if environment_id is not None: request.set_env_id(environment_id) if start_time is not None: request.set_start_time(start_time) if end_time is not None: request.set_end_time(end_time) if severity is not None: request.set_severity(severity) if request_id is not None: request.set_requst_id(request_id) if template is not None: request.set_template(template) if version_label is not None: request.set_version_label(version_label) if max_records is not None: request.set_max_records(max_records) if next_token is not None: request.set_next_token(next_token) try: response = self.call(request) except: raise # parse message combined_result = response['DescribeEventsResponse']\ ['DescribeEventsResult'] results = combined_result['Events'] next_token = combined_result['NextToken'] \ if 'NextToken' in combined_result else None request_id = response['DescribeEventsResponse']\ ['ResponseMetadata']['RequestId'] events = [] for result in results: events.append(EventDescription.from_json(result)) return Response(request_id, events, next_token)