func (e *EC2Events) Events() error { // Request Input var input *ec2.DescribeInstanceStatusInput = &ec2.DescribeInstanceStatusInput{ DryRun: aws.Bool(false), Filters: []*ec2.Filter{ { Name: aws.String("event.code"), Values: []*string{ aws.String("instance-reboot"), aws.String("system-reboot"), aws.String("system-maintenance"), aws.String("instance-retirement"), aws.String("instance-stop"), }, }, }, MaxResults: aws.Int64(1000), } // Request response and error var ( resp *ec2.DescribeInstanceStatusOutput err error ) // Instance Status Request resp, err = e.client.DescribeInstanceStatus(input) if err != nil { return err } // Assign Instance Status Result List into Object e.InstanceStatuses = resp.InstanceStatuses // In the case Instance Status Result has NextToken for resp.NextToken != nil { input.NextToken = resp.NextToken resp, err = e.client.DescribeInstanceStatus(input) if err != nil { return err } e.InstanceStatuses = append(e.InstanceStatuses, resp.InstanceStatuses...) } // InstanceNames e.instanceNames() return nil }