Create or Overwrite an Installation
Updated: March 11, 2016
Creates or overwrites an installation.
Request
Method |
Request URI |
HTTP version |
---|---|---|
PUT |
https://{namespace}.servicebus.windows.net/{NotificationHub}/installations/{id}?api-version=2015-01 |
HTTP/1.1 |
Request Headers
The following table describes required and optional request headers.
Request Header |
Description |
---|---|
Content-Type |
application/json |
Authorization |
Token generated as specified in Shared Access Signature Authentication with Service Bus, or Service Bus authentication and authorization with Microsoft Azure Active Directory Access Control (also known as Access Control Service or ACS). |
x-ms-version |
2015-01 |
Request Body
The following table describes the properties of the JSON request body for installations:
Name |
Type |
Required |
Read-Only |
Description |
---|---|---|---|---|
installationId |
String |
Yes |
No |
Globally unique identifier string |
lastActiveOn |
String |
No |
Yes |
This is the date when the installation was made inactivate by the PNS. |
expirationTime |
String |
No |
Yes |
This is a string containing the date and time in W3C DTF, YYYY-MM-DDThh:mmTZD (e.g. 1997-07-16T19:20+01:00)) in which the registration will expire. The value can be set at the hub level on create or update, and will default to never expire (9999-12-31T23:59:59). |
lastUpdate |
String |
Ignored when updating. Returned when reading. |
Yes |
Date in W3C format of last update to this installation. |
platform |
String |
Yes |
No |
Can be {apns, wns, mpns, adm, gcm}. |
pushChannel |
String |
Yes |
No |
The PNS handle for this installation (in case of WNS the ChannelUri of the ApplicationTile). |
expiredPushChannel |
Boolean |
Ignored when updating. Returned when reading. |
Yes |
This is true if the PNS expired the channel. |
tags |
Array of strings |
No |
No |
An array of tags. Tags are strings as defined in hub specs. |
templates |
JSON object |
No |
No |
A JSON object representing a dictionary of templateNames to template description. |
templates.{name} |
String |
No |
No |
JSON object representing a template. |
templates.{name}.body |
String |
Yes, if template present |
No |
Template for the body of notification payload. |
templates.{name}.headers |
JSON object |
No. Can be present only if platform is wns or mpns. |
No |
JSON object where each property is a header name and value is a template expression. |
templates.{name}.expiry |
String |
No. Can be present only if platform is apns |
No |
Template expression evaluating in W3D date format. |
templates.{name}.tags |
Array of strings |
No |
No |
Array of tags for this template. |
secondaryTiles |
JSON object |
No. Can be present only if platform is wns. |
No |
JSON object containing a dictionary of tileId and secondaryTiles objects. |
secondaryTile.{tileId} |
JSON object |
No |
No |
JSON object with push properties for secondary tiles. |
secondaryTile.{tileId}.pushChannel |
String |
Yes, if tileId is present |
No |
ChannelUri for secondary tile. |
secondaryTile.{tileId}.tags |
Array of strings |
No |
No |
Tags for native notifications to secondary tile. |
secondaryTile.{tileId}.templates |
JSON object |
No |
No |
Same as templates property but for each secondary tile. |
In JSON, the order of elements is not important.
Template body has to be JSON for APNS, GCM, ADM.
Template body must be XML for WNS and MPNS (except when raw).
Templates for WNS must include X-WNS-Type header.
Templates for MPNS must have compatible headers as mentioned in Sending push notifications for Windows Phone 8.
Some JSON examples follow.
Example to register with APNS:
{
"installationId": "12234",
"tags": ["foo", "bar"],
"platform": "apns",
"pushChannel": "ABCDEF-123456-…"
}
Note
The Tags element is optional.
Example to register natively with WNS including a template and no tags:
{
"installationId": "12234",
"platform": "wns",
"pushChannel": "https://db3...",
"templates": {
"myTemplate" : {
body : '<toast><visual lang="en-US"><binding template="ToastTest01"><text id="1">$myTextProp1</text></binding></visual></tile>',
headers: { "X-WNS-Type": "wns/toast" },
"tags": ["foo", "bar"]
}
}
}
A skeleton listing of many possible elements
{
installationId: "",
expirationTime: "",
tags: ["foo", "bar"],
lastUpdate: “”,
user: "",
advertisingId: "",
appId: ""
platform: "",
pushChannel: "",
templates: {
"templateName1" : {
body: "",
headers: { "X-WNS-Type": "wns/tile" },
expiration: "",
tags: ["foo", "bar"]
}
}
secondaryTiles: {
"tileId1": {
pushChannel: "",
tags: ["foo", "bar"],
templates: {
"otherTemplate": {
bodyTemplate: "",
headers: { ... },
tags: ["foo"]
}
}
}
}
}
Response
The response includes an HTTP status code and a set of response headers.
Response Codes
Code |
Description |
---|---|
200 |
The installation was created successfully. |
400 |
The installation could not be created/overwritten because the request was malformed. |
401 |
Authorization failure. The access key was incorrect. |
403 |
Too many installations in this namespace - Installations not created . |
403 |
Request rejected because API call rate is too high. |
For information about status codes, see Status and Error Codes.
Response Headers
Response Header |
Description |
---|---|
Content-type |
application/json |
Content-Location |
The location of the installation in the format: https://{namespace}.servicebus.windows.net/{NotificationHub}/installations/<installationId> |
Response Body
None.
See Also
Read Installation
Update Installation by Installation ID
Delete Installation