-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathtypes.go
156 lines (132 loc) · 6.87 KB
/
types.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
package notificationhubs
import (
"time"
)
type (
// Headers structure
Headers map[string]string
// Registration is a device registration to the hub
Registration struct {
DeviceID string `json:"deviceID,omitempty"`
ExpirationTime *time.Time `json:"expirationTime,omitempty"`
NotificationFormat NotificationFormat `json:"service,omitempty"`
RegistrationID string `json:"registrationID,omitempty"`
Tags string `json:"tags,omitempty"`
}
// TemplateRegistration is a device registration to the hub supporting a template
TemplateRegistration struct {
DeviceID string `json:"deviceID,omitempty"`
ExpirationTime *time.Time `json:"expirationTime,omitempty"`
RegistrationID string `json:"registrationID,omitempty"`
Tags string `json:"tags,omitempty"`
Platform TargetPlatform `json:"platform,omitempty"`
Template string `json:"template,omitempty"`
}
// Registrations is a list of RegistrationResults
Registrations struct {
ID string `xml:"id" json:"id,omitempty"`
Title string `xml:"title" json:"title,omitempty"`
Updated *time.Time `xml:"updated" json:"updated,omitempty"`
Entries []RegistrationResult `xml:"entry" json:"entries,omitempty"`
}
// RegistrationResult is the response from registration
RegistrationResult struct {
ID string `xml:"id" json:"id,omitempty"`
Published *time.Time `xml:"published" json:"published,omitempty"`
RegistrationContent *RegistrationContent `xml:"content" json:"content,omitempty"`
Title string `xml:"title" json:"title,omitempty"`
Updated *time.Time `xml:"updated" json:"updated,omitempty"`
}
// RegistrationContent is information about a specific device registration
RegistrationContent struct {
Format NotificationFormat `xml:"-" json:"format,omitempty"`
Target TargetPlatform `xml:"-" json:"target,omitempty"`
RegisteredDevice *RegisteredDevice `xml:"-" json:"registeredDevice,omitempty"`
AppleRegistrationDescription *RegisteredDevice `xml:"AppleRegistrationDescription" json:"-"`
AppleTemplateRegistrationDescription *RegisteredDevice `xml:"AppleTemplateRegistrationDescription" json:"-"`
GcmRegistrationDescription *RegisteredDevice `xml:"GcmRegistrationDescription" json:"-"`
GcmTemplateRegistrationDescription *RegisteredDevice `xml:"GcmTemplateRegistrationDescription" json:"-"`
}
// RegisteredDevice is a device registration to the hub
RegisteredDevice struct {
DeviceID string `xml:"-" json:"deviceID,omitempty"`
ETag string `xml:"ETag" json:"eTag,omitempty"`
ExpirationTime *time.Time `xml:"-" json:"expirationTime,omitempty"`
Template string `xml:"BodyTemplate" json:"template,omitempty"`
RegistrationID string `xml:"RegistrationId" json:"registrationID,omitempty"`
Tags []string `xml:"-" json:"tags,omitempty"`
DeviceToken *string `xml:"DeviceToken" json:"-"`
ExpirationTimeString *string `xml:"ExpirationTime" json:"-"`
GcmRegistrationID *string `xml:"GcmRegistrationId" json:"-"`
TagsString *string `xml:"Tags" json:"-"`
}
// Installation is a device installation in the hub
Installation struct {
InstallationID string `json:"installationId,omitempty"`
LastActiveOn *time.Time `json:"lastActiveOn,omitempty"`
ExpirationTime *time.Time `json:"expirationTime,omitempty"`
LastUpdate *time.Time `json:"lastUpdate,omitempty"`
Platform InstallationPlatform `json:"platform,omitempty"`
PushChannel string `json:"pushChannel,omitempty"`
ExpiredPushChannel bool `json:"expiredPushChannel,omitempty"`
Tags []string `json:"tags,omitempty"`
Templates map[string]InstallationTemplate `json:"templates,omitempty"`
SecondaryTiles map[string]InstallationSecondaryTile `json:"secondaryTiles,omitempty"`
}
// InstallationTemplate is a device installation template
InstallationTemplate struct {
Body string `json:"body,omitempty"`
Headers map[string]string `json:"headers,omitempty"`
Expiry *time.Time `json:"expiry,omitempty"`
Tags []string `json:"tags,omitempty"`
}
// InstallationSecondaryTile is a device installation secondary tile
InstallationSecondaryTile struct {
PushChannel string `json:"pushChannel,omitempty"`
Tags []string `json:"tags,omitempty"`
Templates map[string]InstallationTemplate `json:"templates,omitempty"`
}
// InstallationChange is a device installation change
InstallationChange struct {
Op InstallationChangeOp `json:"op,omitempty"`
Path string `json:"path,omitempty"`
Value string `json:"value,omitempty"`
}
// NotificationDetails is the detailed information about a sent or scheduled message
NotificationDetails struct {
ID string `xml:"NotificationId"`
State NotificationState `xml:"State"`
EnqueueTime string `xml:"EnqueueTime"`
StartTime string `xml:"StartTime"`
EndTime string `xml:"EndTime"`
Body string `xml:"NotificationBody"`
TargetPlatforms string `xml:"TargetPlatforms"`
ApnsOutcomeCounts *NotificationOutcomes `xml:"ApnsOutcomeCounts"`
GcmOutcomeCounts *NotificationOutcomes `xml:"GcmOutcomeCounts"`
}
// NotificationTelemetry is the id of a sent or scheduled message
NotificationTelemetry struct {
NotificationMessageID string `json:"notificationMessageID,omitempty"`
}
// NotificationOutcomes array of outcomes
NotificationOutcomes struct {
Outcomes []NotificationOutcome `xml:"Outcome"`
}
// NotificationOutcome name value pair for statistics
NotificationOutcome struct {
Name NotificationOutcomeName `xml:"Name"`
Count int `xml:"Count"`
}
// NotificationState is the state of the notification
NotificationState string
// NotificationFormat is the format of a notification
NotificationFormat string
// NotificationOutcomeName is a possible outcome of a notification
NotificationOutcomeName string
// TargetPlatform is the specific platform
TargetPlatform string
// InstallationPlatform is the installation platform
InstallationPlatform string
// InstallationChangeOp is the installation change operation
InstallationChangeOp string
)