func vpnConnectionRefreshFunc(conn *ec2.EC2, connectionId string) resource.StateRefreshFunc { return func() (interface{}, string, error) { resp, err := conn.DescribeVpnConnections(&ec2.DescribeVpnConnectionsInput{ VpnConnectionIds: []*string{aws.String(connectionId)}, }) if err != nil { if ec2err, ok := err.(awserr.Error); ok && ec2err.Code() == "InvalidVpnConnectionID.NotFound" { resp = nil } else { log.Printf("Error on VPNConnectionRefresh: %s", err) return nil, "", err } } if resp == nil || len(resp.VpnConnections) == 0 { return nil, "", nil } connection := resp.VpnConnections[0] return connection, *connection.State, nil } }