code: func (c *Client) Notify(interests []string, pushNotification PushNotification) (*NotifyResponse, error) {
  	pNRequest := notificationRequest{
  		interests,
  		&pushNotification,
  	}
  
  	err := pNRequest.validate()
  	if err != nil {
  		return nil, err
  	}
  
  	if c.PushNotificationHost == "" {
  		return nil, errors.New("PushNotificationHost not provided")
  	}
  
  	requestBody, err := json.Marshal(pNRequest)
  	if err != nil {
  		return nil, err
  	}
  
  	path := fmt.Sprintf("/%s/%s/apps/%s/notifications", PushNotifAPIPrefixDefault, PushNotifAPIVersionDefault, c.AppId)
  
  	url, err := createRequestURL("POST", c.PushNotificationHost, path, c.Key, c.Secret, authTimestamp(), c.Secure, requestBody, nil, c.Cluster)
  	if err != nil {
  		return nil, err
  	}
  
  	byteResponse, err := c.request("POST", url, requestBody)
  	if err != nil {
  		return nil, err
  	}
  
  	var response *NotifyResponse
  	err = json.Unmarshal(byteResponse, &response)
  	if err != nil {
  		return nil, err
  	}
  
  	return response, err
  }
docs: /*
  Notify is used to send native push notifications via Apple APNS or Google GCM/FCM systems. Please make sure that
  you have provided a Client.PushNotificationHost, please see Pusher docs for details: https://pusher.com/docs/push_notifications
  */