go: github.com/pubnub/go Index | Files | Directories

package pubnub

import "github.com/pubnub/go"

Index

Package Files

add_channel_channel_group_request.go add_channels_to_push_request.go clients.go config.go context.go delete_channel_group_request.go endpoints.go enums.go fetch_request.go fire_request.go get_state_request.go grant_common.go grant_request.go grant_token_request.go heartbeat_manager.go heartbeat_request.go here_now_request.go history_delete_request.go history_request.go leave_request.go list_all_channel_group_request.go list_push_provisions_request.go listener_manager.go message_actions_add.go message_actions_get.go message_actions_remove.go message_counts_request.go objects_common.go objects_get_all_channel_metadata.go objects_get_all_uuid_metadata.go objects_get_channel_members_v2.go objects_get_channel_metadata.go objects_get_memberships_v2.go objects_get_uuid_metadata.go objects_manage_channel_members_v2.go objects_manage_memberships_v2.go objects_remove_channel_members.go objects_remove_channel_metadata.go objects_remove_memberships.go objects_remove_uuid_metadata.go objects_set_channel_members.go objects_set_channel_metadata.go objects_set_memberships.go objects_set_uuid_metadata.go presence_request.go publish_push_helper.go publish_request.go pubnub.go reconnection_manager.go remove_all_push_channels_request.go remove_channel_channel_group_request.go remove_channels_from_push_request.go request.go request_context.go request_workers.go set_state_request.go signal_request.go state_manager.go subscribe_context_helper_1_7.go subscribe_request.go subscription_manager.go telemetry_manager.go time_request.go token_manager.go unsubscribe_builder.go where_now_request.go

Constants

const (
    // PNObjectsMembershipEvent is the enum when the event of type `membership` occurs
    PNObjectsMembershipEvent PNObjectsEventType = "membership"
    // PNObjectsChannelEvent is the enum when the event of type `channel` occurs
    PNObjectsChannelEvent = "channel"
    // PNObjectsUUIDEvent is the enum when the event of type `uuid` occurs
    PNObjectsUUIDEvent = "uuid"
    // PNObjectsNoneEvent is used for error handling
    PNObjectsNoneEvent = "none"
)
const (
    // PNRead Read Perms
    PNRead PNGrantBitMask = 1
    // PNWrite Write Perms
    PNWrite = 2
    // PNManage Manage Perms
    PNManage = 4
    // PNDelete Delete Perms
    PNDelete = 8
    // PNCreate Create Perms
    PNCreate = 16
)
const (
    // Version :the version of the SDK
    Version = "4.7.0"
    // MaxSequence for publish messages
    MaxSequence = 65535
)

Default constants

const (
    // StrMissingPubKey shows Missing Publish Key message
    StrMissingPubKey = "Missing Publish Key"
    // StrMissingSubKey shows Missing Subscribe Key message
    StrMissingSubKey = "Missing Subscribe Key"
    // StrMissingChannel shows Channel message
    StrMissingChannel = "Missing Channel"
    // StrMissingChannelGroup shows Channel Group message
    StrMissingChannelGroup = "Missing Channel Group"
    // StrMissingMessage shows Missing Message message
    StrMissingMessage = "Missing Message"
    // StrMissingSecretKey shows Missing Secret Key message
    StrMissingSecretKey = "Missing Secret Key"
    // StrMissingUUID shows Missing UUID message
    StrMissingUUID = "Missing UUID"
    // StrMissingDeviceID shows Missing Device ID message
    StrMissingDeviceID = "Missing Device ID"
    // StrMissingPushType shows Missing Push Type message
    StrMissingPushType = "Missing Push Type"
    // StrMissingPushTopic shows Missing Push Topic message
    StrMissingPushTopic = "Missing Push Topic"
    // StrChannelsTimetoken shows Missing Channels Timetoken message
    StrChannelsTimetoken = "Missing Channels Timetoken"
    // StrChannelsTimetokenLength shows Length of Channels Timetoken message
    StrChannelsTimetokenLength = "Length of Channels Timetoken and Channels do not match"
    // StrInvalidTTL shows Invalid TTL message
    StrInvalidTTL = "Invalid TTL"
    // StrMissingPushTitle shows `Push title missing` message
    StrMissingPushTitle = "Push title missing"
)

func EnumArrayToStringArray Uses

func EnumArrayToStringArray(include interface{}) []string

EnumArrayToStringArray converts a string enum to an array

func NewHTTP1Client Uses

func NewHTTP1Client(connectTimeout, responseReadTimeout, maxIdleConnsPerHost int) *http.Client

NewHTTP1Client creates a new HTTP 1 client with a new transport initialized with connect and read timeout

func NewHTTP2Client Uses

func NewHTTP2Client(connectTimeout int, responseReadTimeout int) *http.Client

NewHTTP2Client creates a new HTTP 2 client with a new transport initialized with connect and read timeout

func SetArrayTypeQueryParam Uses

func SetArrayTypeQueryParam(q *url.Values, val []string, key string)

func SetPushEnvironment Uses

func SetPushEnvironment(q *url.Values, env PNPushEnvironment)

SetPushEnvironment appends the push environment to the query string

func SetPushTopic Uses

func SetPushTopic(q *url.Values, topic string)

SetPushTopic appends the topic to the query string

func SetQueryParam Uses

func SetQueryParam(q *url.Values, queryParam map[string]string)

SetQueryParam appends the query params map to the query string

func SetQueryParamAsCommaSepString Uses

func SetQueryParamAsCommaSepString(q *url.Values, val []string, key string)

type AddChannelToChannelGroupResponse Uses

type AddChannelToChannelGroupResponse struct {
}

AddChannelToChannelGroupResponse is the struct returned when the Execute function of AddChannelToChannelGroup is called.

type AddPushNotificationsOnChannelsResponse Uses

type AddPushNotificationsOnChannelsResponse struct{}

AddPushNotificationsOnChannelsResponse is response structure for AddPushNotificationsOnChannelsBuilder

type AllChannelGroupResponse Uses

type AllChannelGroupResponse struct {
    Channels     []string
    ChannelGroup string
}

AllChannelGroupResponse is the struct returned when the Execute function of List All Channel Groups is called.

type ChannelPermissions Uses

type ChannelPermissions struct {
    Read   bool
    Write  bool
    Delete bool
}

ChannelPermissions contains all the acceptable perms for channels

type ChannelPermissionsWithToken Uses

type ChannelPermissionsWithToken struct {
    Permissions  ChannelPermissions
    BitMaskPerms int64
    Token        string
    Timestamp    int64
    TTL          int
}

ChannelPermissionsWithToken is used for channels resource type permissions

type Config Uses

type Config struct {
    sync.RWMutex
    PublishKey                 string             // PublishKey you can get it from admin panel (only required if publishing).
    SubscribeKey               string             // SubscribeKey you can get it from admin panel.
    SecretKey                  string             // SecretKey (only required for modifying/revealing access permissions).
    AuthKey                    string             // AuthKey If Access Manager is utilized, client will use this AuthKey in all restricted requests.
    Origin                     string             // Custom Origin if needed
    UUID                       string             // UUID to be used as a device identifier, a default uuid is generated if not passed.
    CipherKey                  string             // If CipherKey is passed, all communications to/from PubNub will be encrypted.
    Secure                     bool               // True to use TLS
    ConnectTimeout             int                // net.Dialer.Timeout
    NonSubscribeRequestTimeout int                // http.Client.Timeout for non-subscribe requests
    SubscribeRequestTimeout    int                // http.Client.Timeout for subscribe requests only
    HeartbeatInterval          int                // The frequency of the pings to the server to state that the client is active
    PresenceTimeout            int                // The time after which the server will send a timeout for the client
    MaximumReconnectionRetries int                // The config sets how many times to retry to reconnect before giving up.
    MaximumLatencyDataAge      int                // Max time to store the latency data for telemetry
    FilterExpression           string             // Feature to subscribe with a custom filter expression.
    PNReconnectionPolicy       ReconnectionPolicy // Reconnection policy selection
    Log                        *log.Logger        // Logger instance
    SuppressLeaveEvents        bool               // When true the SDK doesn't send out the leave requests.
    DisablePNOtherProcessing   bool               // PNOther processing looks for pn_other in the JSON on the recevied message
    UseHTTP2                   bool               // HTTP2 Flag
    MessageQueueOverflowCount  int                // When the limit is exceeded by the number of messages received in a single subscribe request, a status event PNRequestMessageCountExceededCategory is fired.
    MaxIdleConnsPerHost        int                // Used to set the value of HTTP Transport's MaxIdleConnsPerHost.
    MaxWorkers                 int                // Number of max workers for Publish and Grant requests
    UsePAMV3                   bool               // Use PAM version 2, Objects requets would still use PAM v3
    StoreTokensOnGrant         bool               // Will store grant v3 tokens in token manager for further use.
}

Config instance is storage for user-provided information which describe further PubNub client behaviour. Configuration instance contain additional set of properties which allow to perform precise PubNub client configuration.

func NewConfig Uses

func NewConfig() *Config

NewConfig initiates the config with default values.

func NewDemoConfig Uses

func NewDemoConfig() *Config

NewDemoConfig initiates the config with demo keys, for tests only.

func (*Config) SetPresenceTimeout Uses

func (c *Config) SetPresenceTimeout(timeout int) *Config

SetPresenceTimeout sets the presence timeout and automatically calulates the preferred timeout value. timeout: How long the server will consider the client alive for presence.

func (*Config) SetPresenceTimeoutWithCustomInterval Uses

func (c *Config) SetPresenceTimeoutWithCustomInterval(
    timeout, interval int) *Config

SetPresenceTimeoutWithCustomInterval sets the presence timeout and interval. timeout: How long the server will consider the client alive for presence. interval: How often the client will announce itself to server.

type Context Uses

type Context interface {
    Deadline() (deadline time.Time, ok bool)
    Done() <-chan struct{}
    Err() error
    Value(key interface{}) interface{}
}

type DeleteChannelGroupResponse Uses

type DeleteChannelGroupResponse struct{}

DeleteChannelGroupResponse is response structure for Delete Channel Group function

type FetchResponse Uses

type FetchResponse struct {
    Messages map[string][]FetchResponseItem
}

FetchResponse is the response to Fetch request. It contains a map of type FetchResponseItem

type FetchResponseItem Uses

type FetchResponseItem struct {
    Message        interface{}                               `json:"message"`
    Meta           interface{}                               `json:"meta"`
    MessageActions map[string]PNHistoryMessageActionsTypeMap `json:"actions"`
    Timetoken      string                                    `json:"timetoken"`
}

FetchResponseItem contains the message and the associated timetoken.

type GetStateResponse Uses

type GetStateResponse struct {
    State map[string]interface{}
    UUID  string
}

GetStateResponse is the struct returned when the Execute function of GetState is called.

type GrantResources Uses

type GrantResources struct {
    Channels map[string]int64 `json:"channels" cbor:"chan"`
    Groups   map[string]int64 `json:"groups" cbor:"grp"`
    Users    map[string]int64 `json:"users" cbor:"usr"`
    Spaces   map[string]int64 `json:"spaces" cbor:"spc"`
}

GrantResources is the struct used to decode the server response

type GrantResourcesWithPermissions Uses

type GrantResourcesWithPermissions struct {
    Channels        map[string]ChannelPermissionsWithToken
    Groups          map[string]GroupPermissionsWithToken
    Users           map[string]UserSpacePermissionsWithToken
    Spaces          map[string]UserSpacePermissionsWithToken
    ChannelsPattern map[string]ChannelPermissionsWithToken
    GroupsPattern   map[string]GroupPermissionsWithToken
    UsersPattern    map[string]UserSpacePermissionsWithToken
    SpacesPattern   map[string]UserSpacePermissionsWithToken
}

GrantResourcesWithPermissions is used as a common struct to store all resource type permissions

func ParseGrantResources Uses

func ParseGrantResources(res GrantResources, token string, timetoken int64, ttl int) *GrantResourcesWithPermissions

ParseGrantResources parses the token for permissions and adds them along the other values to the GrantResourcesWithPermissions struct

type GrantResponse Uses

type GrantResponse struct {
    Level        string
    SubscribeKey string

    TTL int

    Channels      map[string]*PNPAMEntityData
    ChannelGroups map[string]*PNPAMEntityData

    ReadEnabled   bool
    WriteEnabled  bool
    ManageEnabled bool
    DeleteEnabled bool
}

GrantResponse is the struct returned when the Execute function of Grant is called.

type GroupPermissions Uses

type GroupPermissions struct {
    Read   bool
    Manage bool
}

GroupPermissions contains all the acceptable perms for groups

type GroupPermissionsWithToken Uses

type GroupPermissionsWithToken struct {
    Permissions  GroupPermissions
    BitMaskPerms int64
    Token        string
    Timestamp    int64
    TTL          int
}

GroupPermissionsWithToken is used for groups resource type permissions

type HeartbeatManager Uses

type HeartbeatManager struct {
    sync.RWMutex
    // contains filtered or unexported fields
}

HeartbeatManager is a struct that assists in running of the heartbeat.

func (*HeartbeatManager) Destroy Uses

func (m *HeartbeatManager) Destroy()

Destroy stops the running heartbeat.

type HereNowChannelData Uses

type HereNowChannelData struct {
    ChannelName string

    Occupancy int

    Occupants []HereNowOccupantsData
}

HereNowChannelData is the struct containing the occupancy details of the channels.

type HereNowOccupantsData Uses

type HereNowOccupantsData struct {
    UUID string

    State map[string]interface{}
}

HereNowOccupantsData is the struct containing the state and UUID of the occupants in the channel.

type HereNowResponse Uses

type HereNowResponse struct {
    TotalChannels  int
    TotalOccupancy int

    Channels []HereNowChannelData
}

HereNowResponse is the struct returned when the Execute function of HereNow is called.

type HistoryDeleteResponse Uses

type HistoryDeleteResponse struct {
}

HistoryDeleteResponse is the struct returned when Delete Messages is called.

type HistoryResponse Uses

type HistoryResponse struct {
    Messages       []HistoryResponseItem
    StartTimetoken int64
    EndTimetoken   int64
}

HistoryResponse is used to store the response from the History request.

type HistoryResponseItem Uses

type HistoryResponseItem struct {
    Message   interface{}
    Meta      interface{}
    Timetoken int64
}

HistoryResponseItem is used to store the Message and the associated timetoken from the History request.

type JobQItem Uses

type JobQItem struct {
    Req         *http.Request
    Client      *http.Client
    JobResponse chan *JobQResponse
}

type JobQResponse Uses

type JobQResponse struct {
    Resp  *http.Response
    Error error
}

type LatencyEntry Uses

type LatencyEntry struct {
    D   int64
    L   float64
}

LatencyEntry is the struct to store the timestamp and latency values.

type ListPushProvisionsRequestResponse Uses

type ListPushProvisionsRequestResponse struct {
    Channels []string
}

ListPushProvisionsRequestResponse is the struct returned when the Execute function of ListPushProvisions is called.

type Listener Uses

type Listener struct {
    Status              chan *PNStatus
    Message             chan *PNMessage
    Presence            chan *PNPresence
    Signal              chan *PNMessage
    UUIDEvent           chan *PNUUIDEvent
    ChannelEvent        chan *PNChannelEvent
    MembershipEvent     chan *PNMembershipEvent
    MessageActionsEvent chan *PNMessageActionsEvent
}

func NewListener Uses

func NewListener() *Listener

type ListenerManager Uses

type ListenerManager struct {
    sync.RWMutex
    // contains filtered or unexported fields
}

type MessageAction Uses

type MessageAction struct {
    ActionType  string `json:"type"`
    ActionValue string `json:"value"`
}

MessageAction struct is used to create a Message Action

type MessageCountsResponse Uses

type MessageCountsResponse struct {
    Channels map[string]int
}

MessageCountsResponse is the response to MessageCounts request. It contains a map of type MessageCountsResponseItem

type OperationType Uses

type OperationType int

OperationType is used as an enum to catgorize the various operations in the APIs lifecycle

const (
    // PNSubscribeOperation is the enum used for the Subcribe operation.
    PNSubscribeOperation OperationType = 1 + iota
    // PNUnsubscribeOperation is the enum used for the Unsubcribe operation.
    PNUnsubscribeOperation
    // PNPublishOperation is the enum used for the Publish operation.
    PNPublishOperation
    // PNFireOperation is the enum used for the Fire operation.
    PNFireOperation
    // PNHistoryOperation is the enum used for the History operation.
    PNHistoryOperation
    // PNFetchMessagesOperation is the enum used for the Fetch operation.
    PNFetchMessagesOperation
    // PNWhereNowOperation is the enum used for the Where Now operation.
    PNWhereNowOperation
    // PNHereNowOperation is the enum used for the Here Now operation.
    PNHereNowOperation
    // PNHeartBeatOperation is the enum used for the Heartbeat operation.
    PNHeartBeatOperation
    // PNSetStateOperation is the enum used for the Set State operation.
    PNSetStateOperation
    // PNGetStateOperation is the enum used for the Get State operation.
    PNGetStateOperation
    // PNAddChannelsToChannelGroupOperation is the enum used for the Add Channels to Channel Group operation.
    PNAddChannelsToChannelGroupOperation
    // PNRemoveChannelFromChannelGroupOperation is the enum used for the Remove Channels from Channel Group operation.
    PNRemoveChannelFromChannelGroupOperation
    // PNRemoveGroupOperation is the enum used for the Remove Channel Group operation.
    PNRemoveGroupOperation
    // PNChannelsForGroupOperation is the enum used for the List Channels of Channel Group operation.
    PNChannelsForGroupOperation
    // PNPushNotificationsEnabledChannelsOperation is the enum used for the List Channels with Push Notifications enabled operation.
    PNPushNotificationsEnabledChannelsOperation
    // PNAddPushNotificationsOnChannelsOperation is the enum used for the Add Channels to Push Notifications operation.
    PNAddPushNotificationsOnChannelsOperation
    // PNRemovePushNotificationsFromChannelsOperation is the enum used for the Remove Channels from Push Notifications operation.
    PNRemovePushNotificationsFromChannelsOperation
    // PNRemoveAllPushNotificationsOperation is the enum used for the Remove All Channels from Push Notifications operation.
    PNRemoveAllPushNotificationsOperation
    // PNTimeOperation is the enum used for the Time operation.
    PNTimeOperation
    // PNAccessManagerGrant is the enum used for the Access Manager Grant operation.
    PNAccessManagerGrant
    // PNAccessManagerRevoke is the enum used for the Access Manager Revoke operation.
    PNAccessManagerRevoke
    // PNDeleteMessagesOperation is the enum used for the Delete Messages from History operation.
    PNDeleteMessagesOperation
    // PNMessageCountsOperation is the enum used for History with messages operation.
    PNMessageCountsOperation
    // PNSignalOperation is the enum used for Signal opertaion.
    PNSignalOperation
    // PNCreateUserOperation is the enum used to create users in the Object API.
    // ENUM ORDER needs to be maintained for Objects AIP
    PNCreateUserOperation
    // PNGetUsersOperation is the enum used to get users in the Object API.
    PNGetUsersOperation
    // PNGetUserOperation is the enum used to get user in the Object API.
    PNGetUserOperation
    // PNUpdateUserOperation is the enum used to update users in the Object API.
    PNUpdateUserOperation
    // PNDeleteUserOperation is the enum used to delete users in the Object API.
    PNDeleteUserOperation
    // PNGetSpaceOperation is the enum used to get space in the Object API.
    PNGetSpaceOperation
    // PNGetSpacesOperation is the enum used to get spaces in the Object API.
    PNGetSpacesOperation
    // PNCreateSpaceOperation is the enum used to create space in the Object API.
    PNCreateSpaceOperation
    // PNDeleteSpaceOperation is the enum used to delete space in the Object API.
    PNDeleteSpaceOperation
    // PNUpdateSpaceOperation is the enum used to update space in the Object API.
    PNUpdateSpaceOperation
    // PNGetMembershipsOperation is the enum used to get memberships in the Object API.
    PNGetMembershipsOperation
    // PNGetChannelMembersOperation is the enum used to get members in the Object API.
    PNGetChannelMembersOperation
    // PNManageMembershipsOperation is the enum used to manage memberships in the Object API.
    PNManageMembershipsOperation
    // PNManageMembersOperation is the enum used to manage members in the Object API.
    // ENUM ORDER needs to be maintained for Objects API.
    PNManageMembersOperation
    // PNSetChannelMembersOperation is the enum used to Set Members in the Object API.
    PNSetChannelMembersOperation
    // PNSetMembershipsOperation is the enum used to Set Memberships in the Object API.
    PNSetMembershipsOperation
    // PNRemoveChannelMetadataOperation is the enum used to Remove Channel Metadata in the Object API.
    PNRemoveChannelMetadataOperation
    // PNRemoveUUIDMetadataOperation is the enum used to Remove UUID Metadata in the Object API.
    PNRemoveUUIDMetadataOperation
    // PNGetAllChannelMetadataOperation is the enum used to Get All Channel Metadata in the Object API.
    PNGetAllChannelMetadataOperation
    // PNGetAllUUIDMetadataOperation is the enum used to Get All UUID Metadata in the Object API.
    PNGetAllUUIDMetadataOperation
    // PNGetUUIDMetadataOperation is the enum used to Get UUID Metadata in the Object API.
    PNGetUUIDMetadataOperation
    // PNRemoveMembershipsOperation is the enum used to Remove Memberships in the Object API.
    PNRemoveMembershipsOperation
    // PNRemoveChannelMembersOperation is the enum used to Remove Members in the Object API.
    PNRemoveChannelMembersOperation
    // PNSetUUIDMetadataOperation is the enum used to Set UUID Metadata in the Object API.
    PNSetUUIDMetadataOperation
    // PNSetChannelMetadataOperation is the enum used to Set Channel Metadata in the Object API.
    PNSetChannelMetadataOperation
    // PNGetChannelMetadataOperation is the enum used to Get Channel Metadata in the Object API.
    PNGetChannelMetadataOperation
    // PNAccessManagerGrantToken is the enum used for Grant v3 requests.
    PNAccessManagerGrantToken
    // PNGetMessageActionsOperation is the enum used for Message Actions Get requests.
    PNGetMessageActionsOperation
    // PNHistoryWithActionsOperation is the enum used for History with Actions requests.
    PNHistoryWithActionsOperation
    // PNAddMessageActionsOperation is the enum used for Message Actions Add requests.
    PNAddMessageActionsOperation
    // PNRemoveMessageActionsOperation is the enum used for Message Actions Remove requests.
    PNRemoveMessageActionsOperation
)

func (OperationType) String Uses

func (t OperationType) String() string

type Operations Uses

type Operations struct {
    // contains filtered or unexported fields
}

Operations is the struct to store the latency values of different operations.

type PNAPNS2Data Uses

type PNAPNS2Data struct {
    CollapseID string         `json:"collapseId"`
    Expiration string         `json:"expiration"`
    Targets    []PNPushTarget `json:"targets"`
    Version    string         `json:"version"`
}

PNAPNS2Data is the struct used for the APNS2 paylod

type PNAPNSData Uses

type PNAPNSData struct {
    APS    PNAPSData `json:"aps"`
    Custom map[string]interface{}
}

PNAPNSData is the struct used for the APNS paylod

type PNAPSData Uses

type PNAPSData struct {
    Alert    interface{} `json:"alert"`
    Badge    int         `json:"badge"`
    Sound    string      `json:"sound"`
    Title    string      `json:"title"`
    Subtitle string      `json:"subtitle"`
    Body     string      `json:"body"`
    Custom   map[string]interface{}
}

PNAPSData is the helper struct used for the APNS paylod

type PNAccessManagerKeyData Uses

type PNAccessManagerKeyData struct {
    ReadEnabled   bool
    WriteEnabled  bool
    ManageEnabled bool
    DeleteEnabled bool
    TTL           int
}

PNAccessManagerKeyData is the struct containing the access details of the channel groups.

type PNAddMessageActionsResponse Uses

type PNAddMessageActionsResponse struct {
    Data PNMessageActionsResponse `json:"data"`
    // contains filtered or unexported fields
}

PNAddMessageActionsResponse is the Add Message Actions API Response

type PNChannel Uses

type PNChannel struct {
    ID          string                 `json:"id"`
    Name        string                 `json:"name"`
    Description string                 `json:"description"`
    Updated     string                 `json:"updated"`
    ETag        string                 `json:"eTag"`
    Custom      map[string]interface{} `json:"custom"`
}

PNChannel is the Objects API space struct

type PNChannelEvent Uses

type PNChannelEvent struct {
    Event             PNObjectsEvent
    ChannelID         string
    Description       string
    Timestamp         string
    Name              string
    Updated           string
    ETag              string
    Custom            map[string]interface{}
    SubscribedChannel string
    ActualChannel     string
    Channel           string
    Subscription      string
}

PNChannelEvent is the Response for a Space Event

type PNChannelMembers Uses

type PNChannelMembers struct {
    ID      string                 `json:"id"`
    UUID    PNUUID                 `json:"uuid"`
    Created string                 `json:"created"`
    Updated string                 `json:"updated"`
    ETag    string                 `json:"eTag"`
    Custom  map[string]interface{} `json:"custom"`
}

PNChannelMembers is the Objects API Members struct

type PNChannelMembersInclude Uses

type PNChannelMembersInclude int

PNChannelMembersInclude is used as an enum to catgorize the available Members include types

const (
    // PNChannelMembersIncludeCustom is the enum equivalent to the value `custom` available Members include types
    PNChannelMembersIncludeCustom PNChannelMembersInclude = 1 + iota
    // PNChannelMembersIncludeUUID is the enum equivalent to the value `uuid` available Members include types
    PNChannelMembersIncludeUUID
    // PNChannelMembersIncludeUUIDCustom is the enum equivalent to the value `uuid.custom` available Members include types
    PNChannelMembersIncludeUUIDCustom
)

func (PNChannelMembersInclude) String Uses

func (s PNChannelMembersInclude) String() string

type PNChannelMembersRemove Uses

type PNChannelMembersRemove struct {
    UUID PNChannelMembersUUID `json:"uuid"`
}

PNChannelMembersRemove is the Objects API Members struct used to remove members

type PNChannelMembersRemoveChangeset Uses

type PNChannelMembersRemoveChangeset struct {
    Remove []PNChannelMembersRemove `json:"delete"`
}

PNChannelMembersRemoveChangeset is the Objects API input to add, remove or update membership

type PNChannelMembersSet Uses

type PNChannelMembersSet struct {
    UUID   PNChannelMembersUUID   `json:"uuid"`
    Custom map[string]interface{} `json:"custom"`
}

PNChannelMembersSet is the Objects API Members input struct used to add members

type PNChannelMembersSetChangeset Uses

type PNChannelMembersSetChangeset struct {
    Set []PNChannelMembersSet `json:"set"`
}

PNChannelMembersSetChangeset is the Objects API input to add, remove or update membership

type PNChannelMembersUUID Uses

type PNChannelMembersUUID struct {
    ID string `json:"id"`
}

PNChannelMembersUUID is the Objects API Members input struct used to add members

type PNChannelMetadataInclude Uses

type PNChannelMetadataInclude int

PNChannelMetadataInclude is used as an enum to catgorize the available Channel include types

const (
    // PNChannelMetadataIncludeCustom is the enum equivalent to the value `custom` available Channel include types
    PNChannelMetadataIncludeCustom PNChannelMetadataInclude = 1 + iota
)

func (PNChannelMetadataInclude) String Uses

func (s PNChannelMetadataInclude) String() string

type PNFCMData Uses

type PNFCMData struct {
    Data   PNFCMDataFields `json:"data"`
    Custom map[string]interface{}
}

PNFCMData is the struct used for the FCM paylod

type PNFCMDataFields Uses

type PNFCMDataFields struct {
    Summary interface{} `json:"summary"`
    Custom  map[string]interface{}
}

PNFCMDataFields is the helper struct used for the FCM paylod

type PNGetAllChannelMetadataResponse Uses

type PNGetAllChannelMetadataResponse struct {
    Data       []PNChannel `json:"data"`
    TotalCount int         `json:"totalCount"`
    Next       string      `json:"next"`
    Prev       string      `json:"prev"`
    // contains filtered or unexported fields
}

PNGetAllChannelMetadataResponse is the Objects API Response for Get Spaces

type PNGetAllUUIDMetadataResponse Uses

type PNGetAllUUIDMetadataResponse struct {
    Data       []PNUUID `json:"data"`
    TotalCount int      `json:"totalCount"`
    Next       string   `json:"next"`
    Prev       string   `json:"prev"`
    // contains filtered or unexported fields
}

PNGetAllUUIDMetadataResponse is the Objects API Response for Get Users

type PNGetChannelMembersResponse Uses

type PNGetChannelMembersResponse struct {
    Data       []PNChannelMembers `json:"data"`
    TotalCount int                `json:"totalCount"`
    Next       string             `json:"next"`
    Prev       string             `json:"prev"`
    // contains filtered or unexported fields
}

PNGetChannelMembersResponse is the Objects API Response for Get Members

type PNGetChannelMetadataResponse Uses

type PNGetChannelMetadataResponse struct {
    Data PNChannel `json:"data"`
    // contains filtered or unexported fields
}

PNGetChannelMetadataResponse is the Objects API Response for Get Space

type PNGetMembershipsResponse Uses

type PNGetMembershipsResponse struct {
    Data       []PNMemberships `json:"data"`
    TotalCount int             `json:"totalCount"`
    Next       string          `json:"next"`
    Prev       string          `json:"prev"`
    // contains filtered or unexported fields
}

PNGetMembershipsResponse is the Objects API Response for Get Memberships

type PNGetMessageActionsMore Uses

type PNGetMessageActionsMore struct {
    URL   string `json:"url"`
    Start string `json:"start"`
    End   string `json:"end"`
    Limit int    `json:"limit"`
}

PNGetMessageActionsMore is the struct used when the PNGetMessageActionsResponse has more link

type PNGetMessageActionsResponse Uses

type PNGetMessageActionsResponse struct {
    Data []PNMessageActionsResponse `json:"data"`
    More PNGetMessageActionsMore    `json:"more"`
    // contains filtered or unexported fields
}

PNGetMessageActionsResponse is the GetMessageActions API Response

type PNGetUUIDMetadataResponse Uses

type PNGetUUIDMetadataResponse struct {
    Data PNUUID `json:"data"`
    // contains filtered or unexported fields
}

PNGetUUIDMetadataResponse is the Objects API Response for Get User

type PNGrantBitMask Uses

type PNGrantBitMask int64

PNGrantBitMask is the type for perms BitMask

type PNGrantTokenData Uses

type PNGrantTokenData struct {
    Message string `json:"message"`
    Token   string `json:"token"`
}

PNGrantTokenData is the struct used to decode the server response

type PNGrantTokenDecoded Uses

type PNGrantTokenDecoded struct {
    Resources GrantResources         `cbor:"res"`
    Patterns  GrantResources         `cbor:"pat"`
    Meta      map[string]interface{} `cbor:"meta"`
    Signature []byte                 `cbor:"sig"`
    Version   int                    `cbor:"v"`
    Timestamp int64                  `cbor:"t"`
    TTL       int                    `cbor:"ttl"`
}

PNGrantTokenDecoded is the struct used to decode the server response

func GetPermissions Uses

func GetPermissions(token string) (PNGrantTokenDecoded, error)

GetPermissions decodes the CBORToken

type PNGrantTokenResponse Uses

type PNGrantTokenResponse struct {
    Data PNGrantTokenData `json:"data"`
    // contains filtered or unexported fields
}

PNGrantTokenResponse is the struct returned when the Execute function of Grant Token is called.

type PNGrantType Uses

type PNGrantType int

PNGrantType grant types

const (
    // PNReadEnabled Read Enabled. Applies to Subscribe, History, Presence, Objects
    PNReadEnabled PNGrantType = 1 + iota
    // PNWriteEnabled Write Enabled. Applies to Publish, Objects
    PNWriteEnabled
    // PNManageEnabled Manage Enabled. Applies to Channel-Groups, Objects
    PNManageEnabled
    // PNDeleteEnabled Delete Enabled. Applies to History, Objects
    PNDeleteEnabled
    // PNCreateEnabled Create Enabled. Applies to Objects
    PNCreateEnabled
)

type PNHistoryMessageActionTypeVal Uses

type PNHistoryMessageActionTypeVal struct {
    UUID            string `json:"uuid"`
    ActionTimetoken string `json:"actionTimetoken"`
}

PNHistoryMessageActionTypeVal is the struct used in the Fetch request that includes Message Actions

type PNHistoryMessageActionsTypeMap Uses

type PNHistoryMessageActionsTypeMap struct {
    ActionsTypeValues map[string][]PNHistoryMessageActionTypeVal `json:"-"`
}

PNHistoryMessageActionsTypeMap is the struct used in the Fetch request that includes Message Actions

type PNMPNSData Uses

type PNMPNSData struct {
    Title       string `json:"title"`
    Type        string `json:"type"`
    Count       int    `json:"count"`
    BackTitle   string `json:"back_title"`
    BackContent string `json:"back_content"`
    Custom      map[string]interface{}
}

PNMPNSData is the struct used for the MPNS paylod

type PNManageChannelMembersBody Uses

type PNManageChannelMembersBody struct {
    Set    []PNChannelMembersSet    `json:"set"`
    Remove []PNChannelMembersRemove `json:"delete"`
}

PNManageChannelMembersBody is the Objects API input to add, remove or update members

type PNManageMembersResponse Uses

type PNManageMembersResponse struct {
    Data       []PNChannelMembers `json:"data"`
    TotalCount int                `json:"totalCount"`
    Next       string             `json:"next"`
    Prev       string             `json:"prev"`
    // contains filtered or unexported fields
}

PNManageMembersResponse is the Objects API Response for ManageMembers

type PNManageMembershipsBody Uses

type PNManageMembershipsBody struct {
    Set    []PNMembershipsSet    `json:"set"`
    Remove []PNMembershipsRemove `json:"delete"`
}

PNManageMembershipsBody is the Objects API input to add, remove or update membership

type PNManageMembershipsResponse Uses

type PNManageMembershipsResponse struct {
    Data       []PNMemberships `json:"data"`
    TotalCount int             `json:"totalCount"`
    Next       string          `json:"next"`
    Prev       string          `json:"prev"`
    // contains filtered or unexported fields
}

PNManageMembershipsResponse is the Objects API Response for ManageMemberships

type PNMembersAddChangeSet Uses

type PNMembersAddChangeSet struct {
    Set []PNMembershipsSet `json:"set"`
}

PNMembersAddChangeSet is the Objects API input to add, remove or update members

type PNMembershipEvent Uses

type PNMembershipEvent struct {
    Event             PNObjectsEvent
    UUID              string
    ChannelID         string
    Description       string
    Timestamp         string
    Custom            map[string]interface{}
    SubscribedChannel string
    ActualChannel     string
    Channel           string
    Subscription      string
}

PNMembershipEvent is the Response for a Membership Event

type PNMemberships Uses

type PNMemberships struct {
    ID      string                 `json:"id"`
    Channel PNChannel              `json:"channel"`
    Created string                 `json:"created"`
    Updated string                 `json:"updated"`
    ETag    string                 `json:"eTag"`
    Custom  map[string]interface{} `json:"custom"`
}

PNMemberships is the Objects API Memberships struct

type PNMembershipsChannel Uses

type PNMembershipsChannel struct {
    ID string `json:"id"`
}

PNMembershipsChannel is the Objects API Memberships input struct used to add members

type PNMembershipsInclude Uses

type PNMembershipsInclude int

PNMembershipsInclude is used as an enum to catgorize the available Memberships include types

const (
    // PNMembershipsIncludeCustom is the enum equivalent to the value `custom` available Memberships include types
    PNMembershipsIncludeCustom PNMembershipsInclude = 1 + iota
    // PNMembershipsIncludeChannel is the enum equivalent to the value `channel` available Memberships include types
    PNMembershipsIncludeChannel
    // PNMembershipsIncludeChannelCustom is the enum equivalent to the value `channel.custom` available Memberships include types
    PNMembershipsIncludeChannelCustom
)

func (PNMembershipsInclude) String Uses

func (s PNMembershipsInclude) String() string

type PNMembershipsRemove Uses

type PNMembershipsRemove struct {
    Channel PNMembershipsChannel `json:"channel"`
}

PNMembershipsRemove is the Objects API Memberships struct used to remove members

type PNMembershipsRemoveChangeSet Uses

type PNMembershipsRemoveChangeSet struct {
    Remove []PNMembershipsRemove `json:"delete"`
}

PNMembershipsRemoveChangeSet is the Objects API input to add, remove or update members

type PNMembershipsSet Uses

type PNMembershipsSet struct {
    Channel PNMembershipsChannel   `json:"channel"`
    Custom  map[string]interface{} `json:"custom"`
}

PNMembershipsSet is the Objects API Memberships input struct used to add members

type PNMessage Uses

type PNMessage struct {
    Message           interface{}
    UserMetadata      interface{}
    SubscribedChannel string
    ActualChannel     string
    Channel           string
    Subscription      string
    Publisher         string
    Timetoken         int64
}

PNMessage is the Message Response for Subscribe

type PNMessageActionsEvent Uses

type PNMessageActionsEvent struct {
    Event             PNMessageActionsEventType
    Data              PNMessageActionsResponse
    SubscribedChannel string
    ActualChannel     string
    Channel           string
    Subscription      string
}

PNMessageActionsEvent is the Response for a Message Actions Event

type PNMessageActionsEventType Uses

type PNMessageActionsEventType string

PNMessageActionsEventType is used as an enum to catgorize the available Message Actions Event types

const (
    // PNMessageActionsAdded is the enum when the event of type `added` occurs
    PNMessageActionsAdded PNMessageActionsEventType = "added"
    // PNMessageActionsRemoved is the enum when the event of type `removed` occurs
    PNMessageActionsRemoved = "removed"
)

type PNMessageActionsResponse Uses

type PNMessageActionsResponse struct {
    ActionType       string `json:"type"`
    ActionValue      string `json:"value"`
    ActionTimetoken  string `json:"actionTimetoken"`
    MessageTimetoken string `json:"messageTimetoken"`
    UUID             string `json:"uuid"`
}

PNMessageActionsResponse Message Actions response.

type PNMessageType Uses

type PNMessageType int

PNMessageType is used as an enum to catgorize the Subscribe response.

const (
    // PNMessageTypeSignal is to identify Signal the Subscribe response
    PNMessageTypeSignal PNMessageType = 1 + iota
    // PNMessageTypeObjects is to identify Objects the Subscribe response
    PNMessageTypeObjects
    // PNMessageTypeMessageActions is to identify Actions the Subscribe response
    PNMessageTypeMessageActions
)

type PNObjectsEvent Uses

type PNObjectsEvent string

PNObjectsEvent is used as an enum to catgorize the available Object Events

const (
    // PNObjectsEventRemove is the enum when the event `delete` occurs
    PNObjectsEventRemove PNObjectsEvent = "delete"
    // PNObjectsEventSet is the enum when the event `set` occurs
    PNObjectsEventSet = "set"
)

type PNObjectsEventType Uses

type PNObjectsEventType string

PNObjectsEventType is used as an enum to catgorize the available Object Event types

type PNObjectsResponse Uses

type PNObjectsResponse struct {
    Event       PNObjectsEvent         `json:"event"` // enum value
    EventType   PNObjectsEventType     `json:"type"`  // enum value
    Name        string                 `json:"name"`
    ID          string                 `json:"id"`          // the uuid if user related
    Channel     string                 `json:"channel"`     // the channel if space related
    Description string                 `json:"description"` // the description of what happened
    Timestamp   string                 `json:"timestamp"`   // the timetoken of the event
    ExternalID  string                 `json:"externalId"`
    ProfileURL  string                 `json:"profileUrl"`
    Email       string                 `json:"email"`
    Updated     string                 `json:"updated"`
    ETag        string                 `json:"eTag"`
    Custom      map[string]interface{} `json:"custom"`
    Data        map[string]interface{} `json:"data"`
}

PNObjectsResponse is the Objects API collective Response struct of all methods.

type PNPAMEntityData Uses

type PNPAMEntityData struct {
    Name          string
    AuthKeys      map[string]*PNAccessManagerKeyData
    ReadEnabled   bool
    WriteEnabled  bool
    ManageEnabled bool
    DeleteEnabled bool
    TTL           int
}

PNPAMEntityData is the struct containing the access details of the channels.

type PNPresence Uses

type PNPresence struct {
    Event             string
    UUID              string
    SubscribedChannel string
    ActualChannel     string
    Channel           string
    Subscription      string
    Occupancy         int
    Timetoken         int64
    Timestamp         int64
    UserMetadata      map[string]interface{}
    State             interface{}
    Join              []string
    Leave             []string
    Timeout           []string
    HereNowRefresh    bool
}

PNPresence is the Message Response for Presence

type PNPushEnvironment Uses

type PNPushEnvironment string

PNPushEnvironment is used as an enum to catgorize the available Message Actions Event types

const (
    //PNPushEnvironmentDevelopment for development
    PNPushEnvironmentDevelopment PNPushEnvironment = "development"
    //PNPushEnvironmentProduction for production
    PNPushEnvironmentProduction = "production"
)

type PNPushTarget Uses

type PNPushTarget struct {
    Topic          string            `json:"topic"`
    ExcludeDevices []string          `json:"exclude_devices"`
    Environment    PNPushEnvironment `json:"environment"`
}

PNPushTarget is the helper struct used for the APNS2 paylod

type PNPushType Uses

type PNPushType int

PNPushType is used as an enum to catgorize the available Push Types

const (
    // PNPushTypeNone is used as an enum to for selecting `none` as the PNPushType
    PNPushTypeNone PNPushType = 1 + iota
    // PNPushTypeGCM is used as an enum to for selecting `GCM` as the PNPushType
    PNPushTypeGCM
    // PNPushTypeAPNS is used as an enum to for selecting `APNS` as the PNPushType
    PNPushTypeAPNS
    // PNPushTypeMPNS is used as an enum to for selecting `MPNS` as the PNPushType
    PNPushTypeMPNS
    // PNPushTypeAPNS2 is used as an enum to for selecting `APNS2` as the PNPushType
    PNPushTypeAPNS2
)

func (PNPushType) String Uses

func (p PNPushType) String() string

type PNRemoveChannelMembersResponse Uses

type PNRemoveChannelMembersResponse struct {
    Data       []PNChannelMembers `json:"data"`
    TotalCount int                `json:"totalCount"`
    Next       string             `json:"next"`
    Prev       string             `json:"prev"`
    // contains filtered or unexported fields
}

PNRemoveChannelMembersResponse is the Objects API Response for RemoveChannelMembers

type PNRemoveChannelMetadataResponse Uses

type PNRemoveChannelMetadataResponse struct {
    Data interface{} `json:"data"`
    // contains filtered or unexported fields
}

PNRemoveChannelMetadataResponse is the Objects API Response for delete space

type PNRemoveMembershipsResponse Uses

type PNRemoveMembershipsResponse struct {
    Data       []PNMemberships `json:"data"`
    TotalCount int             `json:"totalCount"`
    Next       string          `json:"next"`
    Prev       string          `json:"prev"`
    // contains filtered or unexported fields
}

PNRemoveMembershipsResponse is the Objects API Response for RemoveMemberships

type PNRemoveMessageActionsResponse Uses

type PNRemoveMessageActionsResponse struct {
    Data interface{} `json:"data"`
    // contains filtered or unexported fields
}

PNRemoveMessageActionsResponse is the Objects API Response for create space

type PNRemoveUUIDMetadataResponse Uses

type PNRemoveUUIDMetadataResponse struct {
    Data interface{} `json:"data"`
    // contains filtered or unexported fields
}

PNRemoveUUIDMetadataResponse is the Objects API Response for delete user

type PNResourceType Uses

type PNResourceType int

PNResourceType grant types

const (
    // PNChannels for channels
    PNChannels PNResourceType = 1 + iota
    // PNGroups for groups
    PNGroups
    // PNUsers for users
    PNUsers
    // PNSpaces for spaces
    PNSpaces
)

type PNSetChannelMembersResponse Uses

type PNSetChannelMembersResponse struct {
    Data       []PNChannelMembers `json:"data"`
    TotalCount int                `json:"totalCount"`
    Next       string             `json:"next"`
    Prev       string             `json:"prev"`
    // contains filtered or unexported fields
}

PNSetChannelMembersResponse is the Objects API Response for SetChannelMembers

type PNSetChannelMetadataResponse Uses

type PNSetChannelMetadataResponse struct {
    Data PNChannel `json:"data"`
    // contains filtered or unexported fields
}

PNSetChannelMetadataResponse is the Objects API Response for Update Space

type PNSetMembershipsResponse Uses

type PNSetMembershipsResponse struct {
    Data       []PNMemberships `json:"data"`
    TotalCount int             `json:"totalCount"`
    Next       string          `json:"next"`
    Prev       string          `json:"prev"`
    // contains filtered or unexported fields
}

PNSetMembershipsResponse is the Objects API Response for SetMemberships

type PNSetUUIDMetadataResponse Uses

type PNSetUUIDMetadataResponse struct {
    Data PNUUID `json:"data"`
    // contains filtered or unexported fields
}

PNSetUUIDMetadataResponse is the Objects API Response for Update user

type PNStatus Uses

type PNStatus struct {
    Category              StatusCategory
    Operation             OperationType
    ErrorData             error
    Error                 bool
    TLSEnabled            bool
    StatusCode            int
    UUID                  string
    AuthKey               string
    Origin                string
    ClientRequest         interface{} // Should be same for non-google environment
    AffectedChannels      []string
    AffectedChannelGroups []string
}

PNStatus is the status struct

type PNUUID Uses

type PNUUID struct {
    ID         string                 `json:"id"`
    Name       string                 `json:"name"`
    ExternalID string                 `json:"externalId"`
    ProfileURL string                 `json:"profileUrl"`
    Email      string                 `json:"email"`
    Updated    string                 `json:"updated"`
    ETag       string                 `json:"eTag"`
    Custom     map[string]interface{} `json:"custom"`
}

PNUUID is the Objects API user struct

type PNUUIDEvent Uses

type PNUUIDEvent struct {
    Event             PNObjectsEvent
    UUID              string
    Description       string
    Timestamp         string
    Name              string
    ExternalID        string
    ProfileURL        string
    Email             string
    Updated           string
    ETag              string
    Custom            map[string]interface{}
    SubscribedChannel string
    ActualChannel     string
    Channel           string
    Subscription      string
}

PNUUIDEvent is the Response for an User Event

type PNUUIDMetadataInclude Uses

type PNUUIDMetadataInclude int

PNUUIDMetadataInclude is used as an enum to catgorize the available UUID include types

const (
    // PNUUIDMetadataIncludeCustom is the enum equivalent to the value `custom` available UUID include types
    PNUUIDMetadataIncludeCustom PNUUIDMetadataInclude = 1 + iota
)

func (PNUUIDMetadataInclude) String Uses

func (s PNUUIDMetadataInclude) String() string

type PermissionsBody Uses

type PermissionsBody struct {
    Resources GrantResources         `json:"resources"`
    Patterns  GrantResources         `json:"patterns"`
    Meta      map[string]interface{} `json:"meta"`
}

PermissionsBody is the struct used to decode the server response

type PubNub Uses

type PubNub struct {
    sync.RWMutex

    Config *Config
    // contains filtered or unexported fields
}

PubNub No server connection will be established when you create a new PubNub object. To establish a new connection use Subscribe() function of PubNub type.

func NewPubNub Uses

func NewPubNub(pnconf *Config) *PubNub

func NewPubNubDemo Uses

func NewPubNubDemo() *PubNub

func (*PubNub) AddChannelToChannelGroup Uses

func (pn *PubNub) AddChannelToChannelGroup() *addChannelToChannelGroupBuilder

func (*PubNub) AddChannelToChannelGroupWithContext Uses

func (pn *PubNub) AddChannelToChannelGroupWithContext(
    ctx Context) *addChannelToChannelGroupBuilder

func (*PubNub) AddListener Uses

func (pn *PubNub) AddListener(listener *Listener)

func (*PubNub) AddMessageAction Uses

func (pn *PubNub) AddMessageAction() *addMessageActionsBuilder

func (*PubNub) AddMessageActionWithContext Uses

func (pn *PubNub) AddMessageActionWithContext(ctx Context) *addMessageActionsBuilder

func (*PubNub) AddPushNotificationsOnChannels Uses

func (pn *PubNub) AddPushNotificationsOnChannels() *addPushNotificationsOnChannelsBuilder

func (*PubNub) AddPushNotificationsOnChannelsWithContext Uses

func (pn *PubNub) AddPushNotificationsOnChannelsWithContext(
    ctx Context) *addPushNotificationsOnChannelsBuilder

func (*PubNub) CreatePushPayload Uses

func (pn *PubNub) CreatePushPayload() *publishPushHelperBuilder

func (*PubNub) CreatePushPayloadWithContext Uses

func (pn *PubNub) CreatePushPayloadWithContext(ctx Context) *publishPushHelperBuilder

func (*PubNub) DeleteChannelGroup Uses

func (pn *PubNub) DeleteChannelGroup() *deleteChannelGroupBuilder

func (*PubNub) DeleteChannelGroupWithContext Uses

func (pn *PubNub) DeleteChannelGroupWithContext(
    ctx Context) *deleteChannelGroupBuilder

func (*PubNub) DeleteMessages Uses

func (pn *PubNub) DeleteMessages() *historyDeleteBuilder

func (*PubNub) DeleteMessagesWithContext Uses

func (pn *PubNub) DeleteMessagesWithContext(ctx Context) *historyDeleteBuilder

func (*PubNub) Destroy Uses

func (pn *PubNub) Destroy()

func (*PubNub) Fetch Uses

func (pn *PubNub) Fetch() *fetchBuilder

func (*PubNub) FetchWithContext Uses

func (pn *PubNub) FetchWithContext(ctx Context) *fetchBuilder

func (*PubNub) Fire Uses

func (pn *PubNub) Fire() *fireBuilder

func (*PubNub) FireWithContext Uses

func (pn *PubNub) FireWithContext(ctx Context) *fireBuilder

func (*PubNub) GetAllChannelMetadata Uses

func (pn *PubNub) GetAllChannelMetadata() *getAllChannelMetadataBuilder

func (*PubNub) GetAllChannelMetadataWithContext Uses

func (pn *PubNub) GetAllChannelMetadataWithContext(ctx Context) *getAllChannelMetadataBuilder

func (*PubNub) GetAllUUIDMetadata Uses

func (pn *PubNub) GetAllUUIDMetadata() *getAllUUIDMetadataBuilder

func (*PubNub) GetAllUUIDMetadataWithContext Uses

func (pn *PubNub) GetAllUUIDMetadataWithContext(ctx Context) *getAllUUIDMetadataBuilder

func (*PubNub) GetChannelMembers Uses

func (pn *PubNub) GetChannelMembers() *getChannelMembersBuilderV2

func (*PubNub) GetChannelMembersWithContext Uses

func (pn *PubNub) GetChannelMembersWithContext(ctx Context) *getChannelMembersBuilderV2

func (*PubNub) GetChannelMetadata Uses

func (pn *PubNub) GetChannelMetadata() *getChannelMetadataBuilder

func (*PubNub) GetChannelMetadataWithContext Uses

func (pn *PubNub) GetChannelMetadataWithContext(ctx Context) *getChannelMetadataBuilder

func (*PubNub) GetClient Uses

func (pn *PubNub) GetClient() *http.Client

GetClient Get a client for transactional requests

func (*PubNub) GetListeners Uses

func (pn *PubNub) GetListeners() map[*Listener]bool

func (*PubNub) GetMemberships Uses

func (pn *PubNub) GetMemberships() *getMembershipsBuilderV2

func (*PubNub) GetMembershipsWithContext Uses

func (pn *PubNub) GetMembershipsWithContext(ctx Context) *getMembershipsBuilderV2

func (*PubNub) GetMessageActions Uses

func (pn *PubNub) GetMessageActions() *getMessageActionsBuilder

func (*PubNub) GetMessageActionsWithContext Uses

func (pn *PubNub) GetMessageActionsWithContext(ctx Context) *getMessageActionsBuilder

func (*PubNub) GetState Uses

func (pn *PubNub) GetState() *getStateBuilder

func (*PubNub) GetStateWithContext Uses

func (pn *PubNub) GetStateWithContext(ctx Context) *getStateBuilder

func (*PubNub) GetSubscribeClient Uses

func (pn *PubNub) GetSubscribeClient() *http.Client

GetSubscribeClient Get a client for transactional requests

func (*PubNub) GetSubscribedChannels Uses

func (pn *PubNub) GetSubscribedChannels() []string

func (*PubNub) GetSubscribedGroups Uses

func (pn *PubNub) GetSubscribedGroups() []string

func (*PubNub) GetToken Uses

func (pn *PubNub) GetToken(resourceId string, resourceType PNResourceType) string

func (*PubNub) GetTokens Uses

func (pn *PubNub) GetTokens() GrantResourcesWithPermissions

func (*PubNub) GetTokensByResource Uses

func (pn *PubNub) GetTokensByResource(resourceType PNResourceType) GrantResourcesWithPermissions

func (*PubNub) GetUUIDMetadata Uses

func (pn *PubNub) GetUUIDMetadata() *getUUIDMetadataBuilder

func (*PubNub) GetUUIDMetadataWithContext Uses

func (pn *PubNub) GetUUIDMetadataWithContext(ctx Context) *getUUIDMetadataBuilder

func (*PubNub) Grant Uses

func (pn *PubNub) Grant() *grantBuilder

func (*PubNub) GrantToken Uses

func (pn *PubNub) GrantToken() *grantTokenBuilder

func (*PubNub) GrantTokenWithContext Uses

func (pn *PubNub) GrantTokenWithContext(ctx Context) *grantTokenBuilder

func (*PubNub) GrantWithContext Uses

func (pn *PubNub) GrantWithContext(ctx Context) *grantBuilder

func (*PubNub) HereNow Uses

func (pn *PubNub) HereNow() *hereNowBuilder

func (*PubNub) HereNowWithContext Uses

func (pn *PubNub) HereNowWithContext(ctx Context) *hereNowBuilder

func (*PubNub) History Uses

func (pn *PubNub) History() *historyBuilder

func (*PubNub) HistoryWithContext Uses

func (pn *PubNub) HistoryWithContext(ctx Context) *historyBuilder

func (*PubNub) Leave Uses

func (pn *PubNub) Leave() *leaveBuilder

func (*PubNub) LeaveWithContext Uses

func (pn *PubNub) LeaveWithContext(ctx Context) *leaveBuilder

func (*PubNub) ListChannelsInChannelGroup Uses

func (pn *PubNub) ListChannelsInChannelGroup() *allChannelGroupBuilder

func (*PubNub) ListChannelsInChannelGroupWithContext Uses

func (pn *PubNub) ListChannelsInChannelGroupWithContext(
    ctx Context) *allChannelGroupBuilder

func (*PubNub) ListPushProvisions Uses

func (pn *PubNub) ListPushProvisions() *listPushProvisionsRequestBuilder

func (*PubNub) ListPushProvisionsWithContext Uses

func (pn *PubNub) ListPushProvisionsWithContext(
    ctx Context) *listPushProvisionsRequestBuilder

func (*PubNub) ManageChannelMembers Uses

func (pn *PubNub) ManageChannelMembers() *manageChannelMembersBuilderV2

func (*PubNub) ManageChannelMembersWithContext Uses

func (pn *PubNub) ManageChannelMembersWithContext(ctx Context) *manageChannelMembersBuilderV2

func (*PubNub) ManageMemberships Uses

func (pn *PubNub) ManageMemberships() *manageMembershipsBuilderV2

func (*PubNub) ManageMembershipsWithContext Uses

func (pn *PubNub) ManageMembershipsWithContext(ctx Context) *manageMembershipsBuilderV2

func (*PubNub) MessageCounts Uses

func (pn *PubNub) MessageCounts() *messageCountsBuilder

func (*PubNub) MessageCountsWithContext Uses

func (pn *PubNub) MessageCountsWithContext(ctx Context) *messageCountsBuilder

func (*PubNub) Presence Uses

func (pn *PubNub) Presence() *presenceBuilder

func (*PubNub) PresenceWithContext Uses

func (pn *PubNub) PresenceWithContext(ctx Context) *presenceBuilder

func (*PubNub) Publish Uses

func (pn *PubNub) Publish() *publishBuilder

func (*PubNub) PublishWithContext Uses

func (pn *PubNub) PublishWithContext(ctx Context) *publishBuilder

func (*PubNub) RemoveAllPushNotifications Uses

func (pn *PubNub) RemoveAllPushNotifications() *removeAllPushChannelsForDeviceBuilder

func (*PubNub) RemoveAllPushNotificationsWithContext Uses

func (pn *PubNub) RemoveAllPushNotificationsWithContext(
    ctx Context) *removeAllPushChannelsForDeviceBuilder

func (*PubNub) RemoveChannelFromChannelGroup Uses

func (pn *PubNub) RemoveChannelFromChannelGroup() *removeChannelFromChannelGroupBuilder

func (*PubNub) RemoveChannelFromChannelGroupWithContext Uses

func (pn *PubNub) RemoveChannelFromChannelGroupWithContext(
    ctx Context) *removeChannelFromChannelGroupBuilder

func (*PubNub) RemoveChannelMembers Uses

func (pn *PubNub) RemoveChannelMembers() *removeChannelMembersBuilder

func (*PubNub) RemoveChannelMembersWithContext Uses

func (pn *PubNub) RemoveChannelMembersWithContext(ctx Context) *removeChannelMembersBuilder

func (*PubNub) RemoveChannelMetadata Uses

func (pn *PubNub) RemoveChannelMetadata() *removeChannelMetadataBuilder

func (*PubNub) RemoveChannelMetadataWithContext Uses

func (pn *PubNub) RemoveChannelMetadataWithContext(ctx Context) *removeChannelMetadataBuilder

func (*PubNub) RemoveListener Uses

func (pn *PubNub) RemoveListener(listener *Listener)

func (*PubNub) RemoveMemberships Uses

func (pn *PubNub) RemoveMemberships() *removeMembershipsBuilder

func (*PubNub) RemoveMembershipsWithContext Uses

func (pn *PubNub) RemoveMembershipsWithContext(ctx Context) *removeMembershipsBuilder

func (*PubNub) RemoveMessageAction Uses

func (pn *PubNub) RemoveMessageAction() *removeMessageActionsBuilder

func (*PubNub) RemoveMessageActionWithContext Uses

func (pn *PubNub) RemoveMessageActionWithContext(ctx Context) *removeMessageActionsBuilder

func (*PubNub) RemovePushNotificationsFromChannels Uses

func (pn *PubNub) RemovePushNotificationsFromChannels() *removeChannelsFromPushBuilder

func (*PubNub) RemovePushNotificationsFromChannelsWithContext Uses

func (pn *PubNub) RemovePushNotificationsFromChannelsWithContext(
    ctx Context) *removeChannelsFromPushBuilder

func (*PubNub) RemoveUUIDMetadata Uses

func (pn *PubNub) RemoveUUIDMetadata() *removeUUIDMetadataBuilder

func (*PubNub) RemoveUUIDMetadataWithContext Uses

func (pn *PubNub) RemoveUUIDMetadataWithContext(ctx Context) *removeUUIDMetadataBuilder

func (*PubNub) ResetTokenManager Uses

func (pn *PubNub) ResetTokenManager()

func (*PubNub) SetChannelMembers Uses

func (pn *PubNub) SetChannelMembers() *setChannelMembersBuilder

func (*PubNub) SetChannelMembersWithContext Uses

func (pn *PubNub) SetChannelMembersWithContext(ctx Context) *setChannelMembersBuilder

func (*PubNub) SetChannelMetadata Uses

func (pn *PubNub) SetChannelMetadata() *setChannelMetadataBuilder

func (*PubNub) SetChannelMetadataWithContext Uses

func (pn *PubNub) SetChannelMetadataWithContext(ctx Context) *setChannelMetadataBuilder

func (*PubNub) SetClient Uses

func (pn *PubNub) SetClient(c *http.Client)

SetClient Set a client for transactional requests

func (*PubNub) SetMemberships Uses

func (pn *PubNub) SetMemberships() *setMembershipsBuilder

func (*PubNub) SetMembershipsWithContext Uses

func (pn *PubNub) SetMembershipsWithContext(ctx Context) *setMembershipsBuilder

func (*PubNub) SetState Uses

func (pn *PubNub) SetState() *setStateBuilder

func (*PubNub) SetStateWithContext Uses

func (pn *PubNub) SetStateWithContext(ctx Context) *setStateBuilder

func (*PubNub) SetSubscribeClient Uses

func (pn *PubNub) SetSubscribeClient(client *http.Client)

func (*PubNub) SetToken Uses

func (pn *PubNub) SetToken(token string)

func (*PubNub) SetTokens Uses

func (pn *PubNub) SetTokens(tokens []string)

func (*PubNub) SetUUIDMetadata Uses

func (pn *PubNub) SetUUIDMetadata() *setUUIDMetadataBuilder

func (*PubNub) SetUUIDMetadataWithContext Uses

func (pn *PubNub) SetUUIDMetadataWithContext(ctx Context) *setUUIDMetadataBuilder

func (*PubNub) Signal Uses

func (pn *PubNub) Signal() *signalBuilder

func (*PubNub) SignalWithContext Uses

func (pn *PubNub) SignalWithContext(ctx Context) *signalBuilder

func (*PubNub) Subscribe Uses

func (pn *PubNub) Subscribe() *subscribeBuilder

func (*PubNub) Time Uses

func (pn *PubNub) Time() *timeBuilder

func (*PubNub) TimeWithContext Uses

func (pn *PubNub) TimeWithContext(ctx Context) *timeBuilder

func (*PubNub) Unsubscribe Uses

func (pn *PubNub) Unsubscribe() *unsubscribeBuilder

func (*PubNub) UnsubscribeAll Uses

func (pn *PubNub) UnsubscribeAll()

func (*PubNub) WhereNow Uses

func (pn *PubNub) WhereNow() *whereNowBuilder

func (*PubNub) WhereNowWithContext Uses

func (pn *PubNub) WhereNowWithContext(ctx Context) *whereNowBuilder

type PublishResponse Uses

type PublishResponse struct {
    Timestamp int64
}

PublishResponse is the response after the execution on Publish and Fire operations.

type ReconnectionManager Uses

type ReconnectionManager struct {
    sync.RWMutex

    ExponentialMultiplier       int
    FailedCalls                 int
    Milliseconds                int
    OnReconnection              func()
    OnMaxReconnectionExhaustion func()
    DoneTimer                   chan bool
    // contains filtered or unexported fields
}

ReconnectionManager is used to store the properties required in running the Reconnection Manager.

func (*ReconnectionManager) HandleOnMaxReconnectionExhaustion Uses

func (m *ReconnectionManager) HandleOnMaxReconnectionExhaustion(handler func())

HandleOnMaxReconnectionExhaustion sets the handler that will be called when the max reconnection attempts are exhausted.

func (*ReconnectionManager) HandleReconnection Uses

func (m *ReconnectionManager) HandleReconnection(handler func())

HandleReconnection sets the handler that will be called when the network reconnects after a disconnect.

type ReconnectionPolicy Uses

type ReconnectionPolicy int

ReconnectionPolicy is used as an enum to catgorize the reconnection policies

const (
    // PNNonePolicy is to be used when selecting the no Reconnection Policy
    // ReconnectionPolicy is set in the config.
    PNNonePolicy ReconnectionPolicy = 1 + iota
    // PNLinearPolicy is to be used when selecting the Linear Reconnection Policy
    // ReconnectionPolicy is set in the config.
    PNLinearPolicy
    // PNExponentialPolicy is to be used when selecting the Exponential Reconnection Policy
    // ReconnectionPolicy is set in the config.
    PNExponentialPolicy
)

type RemoveAllPushChannelsForDeviceResponse Uses

type RemoveAllPushChannelsForDeviceResponse struct{}

RemoveAllPushChannelsForDeviceResponse is the struct returned when the Execute function of RemoveAllPushNotifications is called.

type RemoveChannelFromChannelGroupResponse Uses

type RemoveChannelFromChannelGroupResponse struct {
}

RemoveChannelFromChannelGroupResponse is the struct returned when the Execute function of RemoveChannelFromChannelGroup is called.

type RemoveChannelsFromPushResponse Uses

type RemoveChannelsFromPushResponse struct{}

RemoveChannelsFromPushResponse is the struct returned when the Execute function of RemovePushNotificationsFromChannels is called.

type RequestWorkers Uses

type RequestWorkers struct {
    Workers        []Worker
    WorkersChannel chan chan *JobQItem
    MaxWorkers     int
    Sem            chan bool
}

func (*RequestWorkers) Close Uses

func (p *RequestWorkers) Close()

Close closes the workers

func (*RequestWorkers) ReadQueue Uses

func (p *RequestWorkers) ReadQueue(pubnub *PubNub)

ReadQueue reads the queue and passes on the job to the workers

func (*RequestWorkers) Start Uses

func (p *RequestWorkers) Start(pubnub *PubNub, ctx Context)

Start starts the workers

type ResourcePermissions Uses

type ResourcePermissions struct {
    Read   bool
    Write  bool
    Manage bool
    Delete bool
    Create bool
}

ResourcePermissions contains all the applicable perms for bitmask translations.

type ResponseInfo Uses

type ResponseInfo struct {
    Operation        OperationType
    StatusCode       int
    TLSEnabled       bool
    Origin           string
    UUID             string
    AuthKey          string
    OriginalResponse *http.Response
}

ResponseInfo is used to store the properties in the response of an request.

type SetChannelMetadataBody Uses

type SetChannelMetadataBody struct {
    Name        string                 `json:"name"`
    Description string                 `json:"description"`
    Custom      map[string]interface{} `json:"custom"`
}

SetChannelMetadataBody is the input to update space

type SetStateResponse Uses

type SetStateResponse struct {
    State   interface{}
    Message string
}

SetStateResponse is the response returned when the Execute function of SetState is called.

type SetUUIDMetadataBody Uses

type SetUUIDMetadataBody struct {
    Name       string                 `json:"name"`
    ExternalID string                 `json:"externalId"`
    ProfileURL string                 `json:"profileUrl"`
    Email      string                 `json:"email"`
    Custom     map[string]interface{} `json:"custom"`
}

SetUUIDMetadataBody is the input to update user

type SignalResponse Uses

type SignalResponse struct {
    Timestamp int64
}

SignalResponse is the response to Signal request.

type StateManager Uses

type StateManager struct {
    sync.RWMutex
    // contains filtered or unexported fields
}

StateManager is used to store the subscriptions types

type StateOperation Uses

type StateOperation struct {
    // contains filtered or unexported fields
}

type StatusCategory Uses

type StatusCategory int

StatusCategory is used as an enum to catgorize the various status events in the APIs lifecycle

const (
    // PNUnknownCategory as the StatusCategory means an unknown status category event occurred.
    PNUnknownCategory StatusCategory = 1 + iota
    // PNTimeoutCategory as the StatusCategory means the request timeout has reached.
    PNTimeoutCategory
    // PNConnectedCategory as the StatusCategory means the channel is subscribed to receive messages.
    PNConnectedCategory
    // PNDisconnectedCategory as the StatusCategory means a disconnection occurred due to network issues.
    PNDisconnectedCategory
    // PNCancelledCategory as the StatusCategory means the context was cancelled.
    PNCancelledCategory
    // PNLoopStopCategory as the StatusCategory means the subscribe loop was stopped.
    PNLoopStopCategory
    // PNAcknowledgmentCategory as the StatusCategory is the Acknowledgement of an operation (like Unsubscribe).
    PNAcknowledgmentCategory
    // PNBadRequestCategory as the StatusCategory means the request was malformed.
    PNBadRequestCategory
    // PNAccessDeniedCategory as the StatusCategory means that PAM is enabled and the channel is not granted R/W access.
    PNAccessDeniedCategory
    // PNNoStubMatchedCategory as the StatusCategory means an unknown status category event occurred.
    PNNoStubMatchedCategory
    // PNReconnectedCategory as the StatusCategory means that the network was reconnected (after a disconnection).
    // Applicable on for PNLinearPolicy and PNExponentialPolicy.
    PNReconnectedCategory
    // PNReconnectionAttemptsExhausted as the StatusCategory means that the reconnection attempts
    // to reconnect to the network were exhausted. All channels would be unsubscribed at this point.
    // Applicable on for PNLinearPolicy and PNExponentialPolicy.
    // Reconnection attempts are set in the config: MaximumReconnectionRetries.
    PNReconnectionAttemptsExhausted
    // PNRequestMessageCountExceededCategory is fired when the MessageQueueOverflowCount limit is exceeded by the number of messages received in a single subscribe request
    PNRequestMessageCountExceededCategory
)

func (StatusCategory) String Uses

func (c StatusCategory) String() string

type StatusResponse Uses

type StatusResponse struct {
    Error                 error
    Category              StatusCategory
    Operation             OperationType
    StatusCode            int
    TLSEnabled            bool
    UUID                  string
    AuthKey               string
    Origin                string
    OriginalResponse      string
    Request               string
    AffectedChannels      []string
    AffectedChannelGroups []string
}

StatusResponse is used to store the usable properties in the response of an request.

type SubscribeOperation Uses

type SubscribeOperation struct {
    Channels         []string
    ChannelGroups    []string
    PresenceEnabled  bool
    Timetoken        int64
    FilterExpression string
    State            map[string]interface{}
    QueryParam       map[string]string
}

SubscribeOperation

type SubscriptionItem Uses

type SubscriptionItem struct {
    // contains filtered or unexported fields
}

SubscriptionItem is used to store the subscription item's properties.

type SubscriptionManager Uses

type SubscriptionManager struct {
    sync.RWMutex
    // contains filtered or unexported fields
}

Heartbeat: - Heartbeat is enabled by default. - Default presence timeout is 0 seconds. - The first Heartbeat request will be scheduled to be executed after getHeartbeatInterval() seconds (default - 149).

func (*SubscriptionManager) AddListener Uses

func (m *SubscriptionManager) AddListener(listener *Listener)

func (*SubscriptionManager) Destroy Uses

func (m *SubscriptionManager) Destroy()

func (*SubscriptionManager) Disconnect Uses

func (m *SubscriptionManager) Disconnect()

func (*SubscriptionManager) GetListeners Uses

func (m *SubscriptionManager) GetListeners() map[*Listener]bool

func (*SubscriptionManager) RemoveAllListeners Uses

func (m *SubscriptionManager) RemoveAllListeners()

func (*SubscriptionManager) RemoveListener Uses

func (m *SubscriptionManager) RemoveListener(listener *Listener)

type TelemetryManager Uses

type TelemetryManager struct {
    sync.RWMutex

    IsRunning bool
    // contains filtered or unexported fields
}

TelemetryManager is the struct to store the Telemetry details.

func (*TelemetryManager) CleanUpTelemetryData Uses

func (m *TelemetryManager) CleanUpTelemetryData()

CleanUpTelemetryData cleans up telemetry data of all operations.

func (*TelemetryManager) OperationLatency Uses

func (m *TelemetryManager) OperationLatency() map[string]string

OperationLatency returns a map of the stored latencies by operation.

func (*TelemetryManager) StoreLatency Uses

func (m *TelemetryManager) StoreLatency(latency float64, t OperationType)

StoreLatency stores the latency values of the different operations.

type TimeResponse Uses

type TimeResponse struct {
    Timetoken int64
}

TimeResponse is the response when Time call is executed.

type TokenManager Uses

type TokenManager struct {
    sync.RWMutex
    Tokens GrantResourcesWithPermissions
    // contains filtered or unexported fields
}

TokenManager struct is used to for token manager operations

func (*TokenManager) CleanUp Uses

func (m *TokenManager) CleanUp()

CleanUp resets the token manager

func (*TokenManager) GetAllTokens Uses

func (m *TokenManager) GetAllTokens() GrantResourcesWithPermissions

GetAllTokens retrieves all the tokens from the token manager

func (*TokenManager) GetToken Uses

func (m *TokenManager) GetToken(resourceID string, resourceType PNResourceType) string

GetToken first match for direct ids, if no match found use the first token from pattern match ignoring the regex (by design).

func (*TokenManager) GetTokensByResource Uses

func (m *TokenManager) GetTokensByResource(resourceType PNResourceType) GrantResourcesWithPermissions

GetTokensByResource retrieves the tokens by PNResourceType from the token manager

func (*TokenManager) SetAuthParan Uses

func (m *TokenManager) SetAuthParan(q *url.Values, resourceID string, resourceType PNResourceType)

SetAuthParan sets the auth param in the requests by retrieving the corresponding tokens from the token manager

func (*TokenManager) StoreToken Uses

func (m *TokenManager) StoreToken(token string)

StoreToken Aceepts PAMv3 token format token to store in the token manager

func (*TokenManager) StoreTokens Uses

func (m *TokenManager) StoreTokens(token []string)

StoreTokens Aceepts PAMv3 token format tokens to store in the token manager

type UnsubscribeOperation Uses

type UnsubscribeOperation struct {
    Channels      []string
    ChannelGroups []string
    QueryParam    map[string]string
}

type UserSpacePermissions Uses

type UserSpacePermissions struct {
    Read   bool
    Write  bool
    Manage bool
    Delete bool
    Create bool
}

UserSpacePermissions contains all the acceptable perms for Users and Spaces

type UserSpacePermissionsWithToken Uses

type UserSpacePermissionsWithToken struct {
    Permissions  UserSpacePermissions
    BitMaskPerms int64
    Token        string
    Timestamp    int64
    TTL          int
}

UserSpacePermissionsWithToken is used for users/spaces resource type permissions

type WhereNowResponse Uses

type WhereNowResponse struct {
    Channels []string
}

WhereNowResponse is the response of the WhereNow request. Contains channels info.

type Worker Uses

type Worker struct {
    WorkersChannel chan chan *JobQItem
    JobChannel     chan *JobQItem
    // contains filtered or unexported fields
}

func (Worker) Process Uses

func (pw Worker) Process(pubnub *PubNub)

Process runs a goroutine for the worker

Directories

PathSynopsis
pnerr
tests/e2e
tests/helpers
tests/manual
tests/stubs
utils

Package pubnub imports 24 packages (graph) and is imported by 4 packages. Updated 2020-06-11. Refresh now. Tools for package owners.