Metadata API for PubNub Cocoa Objective-C SDK
This page describes the new Objects v2. To upgrade from Objects v1, refer to the migration guide.
Objects provides easy-to-use, serverless storage for user and channel data you need to build innovative, reliable, scalable applications. Use Objects to easily store metadata about your application users and channels, and their membership associations, without the need to stand up your own databases.
PubNub also triggers events when object data is set or removed from the database. Clients can receive these events in real time and update their front-end application accordingly.
User
Get Metadata for All Users
Description
Returns a paginated list of UUID Metadata objects, optionally including the custom data object for each.
Method(s)
To Get All UUID Metadata
you can use the following method(s) in the Cocoa SDK:
- (void)allUUIDMetadataWithRequest:(PNFetchAllUUIDMetadataRequest *)request completion:(PNFetchAllUUIDMetadataCompletionBlock)block
Parameter Type Required Description request
PNFetchAllUUIDMetadataRequest Yes Fetch all UUID metadata
request object with all information which should be used to fetch existingUUID metadata
.block
PNFetchAllUUIDMetadataCompletionBlock Yes Fetch all UUID metadata
request completionblock
.
PNFetchAllUUIDMetadataRequest
Parameter | Type | Required | Description |
---|---|---|---|
sort | NSArray<NSString *> | No | List of criteria (name of field) which should be used for sorting in ascending order. To change sorting order, Use asc or desc to specify sort direction |
includeFields | PNUUIDFields | No | Bitfield set to fields which should be returned with response. Supported fields:
PNUUIDTotalCountField ) can be reset by setting 0. |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check this |
start | NSString | No | Previously-returned cursor bookmark for fetching the next page. |
end | NSString | No | Previously-returned cursor bookmark for fetching the previous page. Ignored if you also supply the start parameter. |
limit | NSUInteger | No | Number of objects to return in response. Will be set to 100 (which is also maximum value) if not specified. |
Basic Usage
PNFetchAllUUIDMetadataRequest *request = [PNFetchAllUUIDMetadataRequest new];
request.start = @"<next from previous request>";
// Add this request option, if returned metadata models should have value which has been set to
// 'custom' property.
request.includeFields = PNUUIDCustomField | PNUUIDTotalCountField;
request.limit = 40;
[self.client allUUIDMetadataWithRequest:request
completion:^(PNFetchAllUUIDMetadataResult *result, PNErrorStatus *status) {
if (!status.isError) {
/**
* UUID metadata successfully fetched.
* Result object has following information:
* result.data.metadata - list of fetched UUID metadata,
* result.data.next - cursor bookmark for fetching the next page,
* result.data.prev - cursor bookmark for fetching the previous page,
* result.data.totalCount - total number of created UUID metadata.
*/
} else {
/**
* Handle UUID metadata fetch error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
}];
Response
Response objects which is returned by client when fetch all UUID metadata
Object API is used:
@interface PNFetchAllUUIDMetadataData : PNServiceData
// List of UUID metadata objects created for current subscribe key.
@property (nonatomic, readonly, strong) NSArray<PNUUIDMetadata *> *metadata;
// Cursor bookmark for fetching the next page.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Cursor bookmark for fetching the previous page.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of objects created for current subscribe key.
*
* Value will be 0 in case if PNUUIDTotalCountField not added to 'includeFields'
* of PNFetchAllUUIDMetadataRequest.
*/
@property (nonatomic, readonly, assign) NSUInteger totalCount;
@end
@interface PNFetchAllUUIDMetadataResult : PNResult
// Fetch all UUID metadata request processed information.
@property (nonatomic, readonly, strong) PNFetchAllUUIDMetadataData *data;
@end
Error response which is used in case of Objects API call failure:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNErrorStatus : PNStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
@end
Get Metadata for All Users (Builder Pattern)
Method(s)
objects().allUUIDMetadata().includeFields(PNUUIDFields).includeCount(BOOL).filter(NSString *).sort(NSArray<NSString *> *).limit(NSUInteger).start(NSString *).end(NSString *).performWithCompletion(PNFetchAllUUIDMetadataCompletionBlock)
Parameter Type Required Description includeFields
PNUUIDFields No PNUUIDCustomField
- include field with additional information frommetadata
which has been used duringUUID metadata set
requests.includeCount
BOOL No Whether total count of objects should be included in response or not. Default: YES
filter
NSString No Expression to filter out results basing on specified criteria. For more details on the supported grammar, check this sort
NSArray No List of criteria (name of field) which should be used for sorting in ascending order. To change sorting order, append :asc
(ascending used by default) or:desc
(descending) to field name.limit
NSUInteger No Maximum number of objects per fetched page. Default: 100
(which is also maximum value)start
NSString No Cursor value to navigate to next fetched result page. end
NSString No Cursor value to navigate to previous fetched result page. Will be ignored if you also supply the start
parameter.block
PNFetchAllUUIDMetadataCompletionBlock Yes Associated metadata fetch
completion handler block.
Note
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
self.client.objects().allUUIDMetadata()
.start(@"<next from previous request>")
.includeFields(PNUUIDCustomField)
.includeCount(YES)
.limit(40)
.performWithCompletion(^(PNFetchAllUUIDMetadataResult *result, PNErrorStatus *status) {
if (!status.isError) {
/**
* UUID metadata successfully fetched.
* Result object has following information:
* result.data.metadata - list of fetched UUID metadata,
* result.data.next - cursor bookmark for fetching the next page,
* result.data.prev - cursor bookmark for fetching the previous page,
* result.data.totalCount - total number of created UUID metadata.
*/
} else {
/**
* Handle UUID metadata fetch error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
});
Response
Response objects which is returned by client when fetch all UUID metadata
Object API is used:
@interface PNFetchAllUUIDMetadataData : PNServiceData
// List of UUID metadata objects created for current subscribe key.
@property (nonatomic, readonly, strong) NSArray<PNUUIDMetadata *> *metadata;
// Cursor bookmark for fetching the next page.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Cursor bookmark for fetching the previous page.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of objects created for current subscribe key.
*
* Value will be 0 in case if PNUUIDTotalCountField not added to 'includeFields'
* of PNFetchAllUUIDMetadataRequest.
*/
@property (nonatomic, readonly, assign) NSUInteger totalCount;
@end
@interface PNFetchAllUUIDMetadataResult : PNResult
// Fetch all UUID metadata request processed information.
@property (nonatomic, readonly, strong) PNFetchAllUUIDMetadataData *data;
@end
Error response which is used in case of Objects API call failure:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNErrorStatus : PNStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
@end
Get User Metadata
Description
Returns metadata for the specified UUID, optionally including the custom data object for each.
Method(s)
To Get UUID Metadata
you can use the following method(s) in the Cocoa SDK:
- (void)uuidMetadataWithRequest:(PNFetchUUIDMetadataRequest *)request completion:(PNFetchUUIDMetadataCompletionBlock)block
Parameter Type Required Description request
PNFetchUUIDMetadataRequest Yes Fetch UUID metadata
request with all information which should be used to fetch existingUUID metadata
.block
PNFetchUUIDMetadataCompletionBlock Yes Fetch UUID metadata
request completionblock
.
PNFetchUUIDMetadataRequest
Parameter | Type | Required | Description |
---|---|---|---|
includeFields | PNUUIDFields | No | Bitfield set to fields which should be returned with response. Supported fields:
PNUUIDCustomField ) can be reset by setting 0. |
uuid | NSString | No | Create and configure fetch UUID metadata request. uuid - Identifier for metadata should be fetched. Will be set to current PubNub configuration uuid if nil is set. |
Basic Usage
PNFetchUUIDMetadataRequest *request = [PNFetchUUIDMetadataRequest requestWithUUID:@"uuid"];
// Add this request option, if returned metadata model should have value which has been set to
// 'custom' property.
request.includeFields = PNUUIDCustomField;
[self.client uuidMetadataWithRequest:request
completion:^(PNFetchUUIDMetadataResult *result, PNErrorStatus *status) {
if (!status.isError) {
/**
* UUID metadata successfully fetched.
* Fetched UUID metadata information available here: result.data.metadata
*/
} else {
/**
* Handle UUID metadata fetch error. Check 'category' property to find out possible issue
* because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
}];
Response
Response objects which is returned by client when fetch UUID metadata
Object API is used:
@interface PNFetchUUIDMetadataData : PNServiceData
// Requested UUID metadata object.
@property (nonatomic, nullable, readonly, strong) PNUUIDMetadata *metadata;
@end
@interface PNFetchUUIDMetadataResult : PNResult
// Fetch UUID metadata request processed information.
@property (nonatomic, readonly, strong) PNFetchUUIDMetadataData *data;
@end
Error response which is used in case of Objects API call failure:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNErrorStatus : PNStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
@end
Get User Metadata (Builder Pattern)
Method(s)
objects().uuidMetadata().uuid(NSString *).includeFields(PNUUIDFields).performWithCompletion(PNFetchUUIDMetadataCompletionBlock)
Parameter Type Required Description uuid
NSString No Identifier for which associated metadata
should be fetched. Default: configured PubNub clientuuid
includeFields
PNUUIDMFields No PNUUIDCustomField
- include field with additional information frommetadata
which has been used duringUUID metadata set
requests. Default:PNUUIDCustomField
Default value can be reset by setting 0block
PNFetchUUIDMetadataCompletionBlock Yes Fetch UUID metadata
request completionblock
.
Note
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
self.client.objects().uuidMetadata()
.uuid(@"uuid")
.includeFields(PNUUIDCustomField)
.performWithCompletion(^(PNFetchUUIDMetadataResult *result, PNErrorStatus *status) {
if (!status.isError) {
/**
* UUID metadata successfully fetched.
* Fetched UUID metadata information available here: result.data.metadata
*/
} else {
/**
* Handle UUID metadata fetch error. Check 'category' property to find out possible issue
* because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
});
Response
Response objects which is returned by client when fetch UUID metadata
Object API is used:
@interface PNFetchUUIDMetadataData : PNServiceData
// Requested UUID metadata object.
@property (nonatomic, nullable, readonly, strong) PNUUIDMetadata *metadata;
@end
@interface PNFetchUUIDMetadataResult : PNResult
// Fetch UUID metadata request processed information.
@property (nonatomic, readonly, strong) PNFetchUUIDMetadataData *data;
@end
Error response which is used in case of Objects API call failure:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNErrorStatus : PNStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
@end
Set User Metadata
Description
Set metadata for a UUID in the database, optionally including the custom data object for each.
Method(s)
To Set UUID Metadata
you can use the following method(s) in the Cocoa SDK:
- (void)setUUIDMetadataWithRequest:(PNSetUUIDMetadataRequest *)request completion:(nullable PNSetUUIDMetadataCompletionBlock)block
Parameter Type Required Description request
PNSetUUIDMetadataRequest Yes Set UUID metadata
request with all information which should be associated withUUID
.block
PNSetUUIDMetadataCompletionBlock No Set UUID metadata
request completionblock
.
PNSetUUIDMetadataRequest
Parameter | Type | Required | Description |
---|---|---|---|
custom | NSDictionary | No | Additional / complex attributes which should be associated with metadata. |
externalId | NSString | No | Identifier from external service (database, auth service). |
profileUrl | NSString | No | URL at which profile available. |
includeFields | PNUUIDFields | No | Bitfield set to fields which should be returned with response. Supported fields:
PNUUIDCustomField ) can be reset by setting 0. |
email | NSString | No | Email address. |
name | NSString | No | Name which should be stored in metadata associated with specified identifier. |
uuid | NSString | No | Create and configure set UUID metadata request. uuid - Identifier with which \c metadata is linked. Will be set to current PubNub configuration uuid if nil is set. |
Basic Usage
PNSetUUIDMetadataRequest *request = [PNSetUUIDMetadataRequest requestWithUUID:@"uuid"];
// With this option on, returned metadata model will have value which has been set to 'custom'
// property.
request.includeFields = PNUUIDCustomField;
request.custom = @{ @"age": @(39), @"status": @"Checking some stuff..." };
request.email = @"support@pubnub.com";
request.name = @"David";
[self.client setUUIDMetadataWithRequest:request completion:^(PNSetUUIDMetadataStatus *status) {
if (!status.isError) {
/**
* UUID metadata successfully has been set.
* UUID metadata information available here: status.data.metadata
*/
} else {
/**
* Handle UUID metadata set error. Check 'category' property to find out possible issue
* because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
}];
Response
Response objects which is returned by client when set UUID metadata
Object API is used:
@interface PNSetUUIDMetadataData : PNServiceData
// Updated UUID metadata object.
@property (nonatomic, nullable, readonly, strong) PNUUIDMetadata *metadata;
@end
@interface PNSetUUIDMetadataStatus : PNAcknowledgmentStatus
// Set UUID metadata request processed information.
@property (nonatomic, readonly, strong) PNSetUUIDMetadataData *data;
@end
Set User Metadata (Builder Pattern)
Method(s)
objects().setUUIDMetadata().uuid(NSString *).name(NSString *).externalId(NSString *).profileUrl(NSString *).custom(NSDictionary *).email(NSString *).includeFields(PNUUIDFields).performWithCompletion(nullable PNSetUUIDMetadataCompletionBlock)
Parameter Type Required Description uuid
NSString No Identifier with which new metadata
should be associated. Default: configured PubNub clientuuid
name
NSString No Name which should stored in metadata
associated with specifiedUUID
.externalId
NSString No External identifier (database, auth service) associated with specified UUID
.profileUrl
NSString No External URL with information for specified UUID
representation.custom
NSDictionary No Additional information which should be stored in metadata
associated with specifiedUUID
.email
NSString No Email address which should be stored in metadata
associated with specifiedUUID
.includeFields
PNUUIDFields No PNUUIDCustomField
- include field with additional information frommetadata
which has been used duringUUID metadata set
requests. Default:PNUUIDCustomField
Default value can be reset by setting 0.block
PNSetUUIDMetadataCompletionBlock No Set UUID metadata
request completionblock
.
Note
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
self.client.objects().setUUIDMetadata()
.uuid(@"uuid")
.name(@"Serhii")
.externalId(@"93FVfHUAf4RLu79J7Q3ejLVu")
.profileUrl(@"https://pubnub.com")
.custom(@{ @"age": @(36) })
.email(@"support@pubnub.com")
.includeFields(PNUUIDCustomField)
.performWithCompletion(^(PNSetUUIDMetadataStatus *status) {
if (!status.isError) {
/**
* UUID metadata successfully has been set.
* UUID metadata information available here: status.data.metadata
*/
} else {
/**
* Handle UUID metadata set error. Check 'category' property to find out possible issue
* because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
});
Response
Response objects which is returned by client when set UUID metadata
Object API is used:
@interface PNSetUUIDMetadataData : PNServiceData
// Updated UUID metadata object.
@property (nonatomic, nullable, readonly, strong) PNUUIDMetadata *metadata;
@end
@interface PNSetUUIDMetadataStatus : PNAcknowledgmentStatus
// Set UUID metadata request processed information.
@property (nonatomic, readonly, strong) PNSetUUIDMetadataData *data;
@end
Remove User Metadata
Description
Removes the metadata from a specified UUID.
Method(s)
To Remove UUID Metadata
you can use the following method(s) in the Cocoa SDK:
- (void)removeUUIDMetadataWithRequest:(PNRemoveUUIDMetadataRequest *)request completion:(nullable PNRemoveUUIDMetadataCompletionBlock)block
Parameter Type Required Description request
PNRemoveUUIDMetadataRequest Yes Remove UUID metadata
request with information about existingmetadata
.block
PNRemoveUUIDMetadataCompletionBlock No Remove UUID metadata
request completionblock
.
PNRemoveUUIDMetadataRequest
Parameter | Type | Required | Description |
---|---|---|---|
uuid | NSString | No | Create and configure delete user request. identifier - Create and configure remove UUID metadata request. Will be set to current PubNub configuration uuid if nil is set. |
Basic Usage
PNRemoveUUIDMetadataRequest *request = [PNRemoveUUIDMetadataRequest requestWithUUID:@"uuid"];
[self.client removeUUIDMetadataWithRequest:request completion:^(PNAcknowledgmentStatus *status) {
if (!status.isError) {
// UUID metadata successfully removed.
} else {
/**
* Handle UUID metadata remove error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
}];
Response
Response objects which is returned by client when remove UUID metadata
Object API is used:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNAcknowledgmentStatus : PNErrorStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
@end
Remove User Metadata (Builder Pattern)
Method(s)
objects().removeUUIDMetadata().uuid(NSString *).performWithCompletion(PNFetchUUIDMetadataCompletionBlock)
Parameter Type Required Description uuid
NSString No Identifier for which associated metadata
should be removed. Default: configured PubNub clientuuid
block
PNRemoveUUIDMetadataCompletionBlock No Remove UUID metadata
request completionblock
.
Note
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
self.client.objects().removeUUIDMetadata()
.uuid(@"uuid")
.performWithCompletion(^(PNAcknowledgmentStatus *status) {
if (!status.isError) {
// User successfully deleted.
} else {
/**
* Handle user delete error. Check 'category' property to find out possible issue
* because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
});
Response
Response objects which is returned by client when remove UUID metadata
Object API is used:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNAcknowledgmentStatus : PNErrorStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
@end
Channel
Get Metadata for All Channels
Description
Returns a paginated list of Channel Metadata objects, optionally including the custom data object for each.
Method(s)
To Get All Channel Metadata
you can use the following method(s) in the Cocoa SDK:
- (void)allChannelsMetadataWithRequest:(PNFetchAllChannelsMetadataRequest *)request completion:(PNFetchAllChannelsMetadataCompletionBlock)block
Parameter Type Required Description request
PNFetchAllChannelsMetadataRequest Yes Fetch all UUID metadata
request object with all information which should be used to fetch existingUUID metadata
.block
PNFetchAllChannelsMetadataCompletionBlock Yes Fetch all UUID metadata
request completionblock
.
PNFetchAllChannelsMetadataRequest
Parameter | Type | Required | Description |
---|---|---|---|
includeFields | PNChannelFields | No | Bitfield set to fields which should be returned with response. Supported fields:
PNChannelTotalCountField ) can be reset by setting 0. |
sort | NSArray<NSString *> | No | List of criteria (name of field) which should be used for sorting in ascending order. Use asc or desc to specify sort direction |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check this |
start | NSString | No | Previously-returned cursor bookmark for fetching the next page. |
end | NSString | No | Previously-returned cursor bookmark for fetching the previous page. Ignored if you also supply the start parameter. |
limit | NSUInteger | No | Number of objects to return in response. Will be set to 100 (which is also maximum value) if not specified. |
Basic Usage
PNFetchAllChannelsMetadataRequest *request = [PNFetchAllChannelsMetadataRequest new];
request.start = @"<next from previous request>";
// Add this request option, if returned metadata models should have value which has been set to
// 'custom' property.
request.includeFields = PNUUIDCustomField | PNUUIDTotalCountField;
request.limit = 40;
[self.client allChannelsMetadataWithRequest:request
completion:^(PNFetchAllChannelsMetadataResult *result, PNErrorStatus *status) {
if (!status.isError) {
/**
* Channels metadata successfully fetched.
* Result object has following information:
* result.data.metadata - list of fetched channels metadata,
* result.data.next - cursor bookmark for fetching the next page,
* result.data.prev - cursor bookmark for fetching the previous page,
* result.data.totalCount - total number of associated channel metadata.
} else {
/**
* Handle channels metadata fetch error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
}];
Response
Response objects which is returned by client when fetch all UUID metadata
Object API is used:
@interface PNFetchAllChannelsMetadataData : PNServiceData
// List of channels metadata objects created for current subscribe key.
@property (nonatomic, readonly, strong) NSArray<PNChannelMetadata *> *metadata;
// Cursor bookmark for fetching the next page.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Cursor bookmark for fetching the previous page.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of objects created for current subscribe key.
*
* Value will be 0 in case if PNChannelTotalCountField not added to 'includeFields'
* of PNFetchAllChannelsMetadataRequest.
*/
@property (nonatomic, readonly, assign) NSUInteger totalCount;
@end
@interface PNFetchAllChannelsMetadataResult : PNResult
// Fetch all channels metadata request processed information.
@property (nonatomic, readonly, strong) PNFetchAllChannelsMetadataData *data;
@end
Error response which is used in case of Objects API call failure:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNErrorStatus : PNStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
@end
Get Metadata for All Channels (Builder Pattern)
Method(s)
objects().allChannelsMetadata().includeFields(PNChannelFields).includeCount(BOOL).filter(NSString).sort(NSArray).limit(NSUInteger).start(NSString).end(NSString).performWithCompletion(PNFetchChannelMetadataCompletionBlock)
Parameter Type Required Description includeFields
PNChannelFields No PNChannelCustomField
- include field with additional information frommetadata
which has been used duringchannel metadata set
requests.includeCount
BOOL No Whether total count of objects should be included in response or not. Default: YES
filter
NSString No Expression to filter out results basing on specified criteria. For more details on the supported grammar, check this sort
NSArray No List of criteria (name of field) which should be used for sorting in ascending order. To change sorting order, append :asc
(ascending used by default) or:desc
(descending) to field name.limit
NSUInteger No Maximum number of objects per fetched page. Default: 100
(which is also maximum value)start
NSString No Cursor value to navigate to next fetched result page. end
NSString No Cursor value to navigate to previous fetched result page. Will be ignored if you also supply the start
parameter.block
PNFetchAllChannelsMetadataCompletionBlock Yes Fetch all UUID metadata
request completionblock
.
Note
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
self.client.objects().allChannelsMetadata()
.start(@"<next from previous request>")
.includeFields(PNChannelCustomField)
.includeCount(YES)
.limit(40)
.performWithCompletion(^(PNFetchAllChannelsMetadataResult *result, PNErrorStatus *status) {
if (!status.isError) {
/**
* Channels metadata successfully fetched.
* Result object has following information:
* result.data.metadata - list of fetched channels metadata,
* result.data.next - cursor bookmark for fetching the next page,
* result.data.prev - cursor bookmark for fetching the previous page,
* result.data.totalCount - total number of associated channel metadata.
} else {
/**
* Handle channels metadata fetch error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
});
Response
Response objects which is returned by client when fetch all UUID metadata
Object API is used:
@interface PNFetchAllChannelsMetadataData : PNServiceData
// List of channels metadata objects created for current subscribe key.
@property (nonatomic, readonly, strong) NSArray<PNChannelMetadata *> *metadata;
// Cursor bookmark for fetching the next page.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Cursor bookmark for fetching the previous page.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of objects created for current subscribe key.
*
* Value will be 0 in case if PNChannelTotalCountField not added to 'includeFields'
* of PNFetchAllChannelsMetadataRequest.
*/
@property (nonatomic, readonly, assign) NSUInteger totalCount;
@end
@interface PNFetchAllChannelsMetadataResult : PNResult
// Fetch all channels metadata request processed information.
@property (nonatomic, readonly, strong) PNFetchAllChannelsMetadataData *data;
@end
Error response which is used in case of Objects API call failure:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNErrorStatus : PNStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
@end
Get Channel Metadata
Description
Returns metadata for the specified Channel, optionally including the custom data object for each.
Method(s)
To Get Channel Metadata
you can use the following method(s) in the Cocoa SDK:
- (void)channelMetadataWithRequest:(PNFetchChannelMetadataRequest *)request completion:(PNFetchChannelMetadataCompletionBlock)block
Parameter Type Required Description request
PNFetchChannelMetadataRequest Yes Fetch channel metadata
request with all information which should be used to fetch existingchannel metadata
.block
PNFetchChannelMetadataCompletionBlock Yes Fetch channel metadata
request completionblock
.
PNFetchChannelMetadataRequest
Parameter | Type | Required | Description |
---|---|---|---|
includeFields | PNChannelFields | No | Bitfield set to fields which should be returned with response. Supported fields:
PNChannelCustomField ) can be reset by setting 0. |
channel | NSString | No | Create and configure fetch channel metadata request. channel - Name of channel for which metadata should be fetched. |
Basic Usage
PNFetchChannelMetadataRequest *request = [PNFetchChannelMetadataRequest requestWithChannel:@"channel"];
// Add this request option, if returned metadata model should have value which has been set to
// 'custom' property.
request.includeFields = PNChannelCustomField;
[self.client channelMetadataWithRequest:request
completion:^(PNFetchChannelsMetadataResult *result, PNErrorStatus *status) {
if (!status.isError) {
/**
* Channel metadata successfully fetched.
* Channel metadata information available here: result.data.metadata
*/
} else {
/**
* Handle channel metadata fetch error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
}];
Response
Response objects which is returned by client when fetch channel metadata
Object API is used:
@interface PNFetchChannelMetadataData : PNServiceData
// Requested channel metadata object.
@property (nonatomic, nullable, readonly, strong) PNChannelMetadata *metadata;
@end
@interface PNFetchChannelsMetadataResult : PNResult
// Fetch channel metadata request processed information.
@property (nonatomic, readonly, strong) PNFetchChannelMetadataData *data;
@end
Error response which is used in case of Objects API call failure:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNErrorStatus : PNStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
@end
Get Channel Metadata (Builder Pattern)
Method(s)
objects().channelMetadata(NSString *).includeFields(PNChannelFields).performWithCompletion(PNFetchChannelMetadataCompletionBlock)
Parameter Type Required Description channel
NSString Yes Name of channel for which associated metadata
should be fetched.includeFields
NSString No PNChannelCustomField
- include field with additional information frommetadata
which has been used duringchannel metadata set
requests. Default:PNChannelCustomField
Default value can be reset by setting 0block
PNFetchChannelMetadataCompletionBlock Yes Fetch channel metadata
request completionblock
.
Note
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
self.client.objects().channelMetadata(@"channel")
.includeFields(PNChannelCustomField)
.performWithCompletion(^(PNFetchChannelsMetadataResult *result, PNErrorStatus *status) {
if (!status.isError) {
/**
* Channel metadata successfully fetched.
* Channel metadata information available here: result.data.metadata
*/
} else {
/**
* Handle channel metadata fetch error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
});
Response
Response objects which is returned by client when fetch channel metadata
Object API is used:
@interface PNFetchChannelMetadataData : PNServiceData
// Requested channel metadata object.
@property (nonatomic, nullable, readonly, strong) PNChannelMetadata *metadata;
@end
@interface PNFetchChannelsMetadataResult : PNResult
// Fetch channel metadata request processed information.
@property (nonatomic, readonly, strong) PNFetchChannelMetadataData *data;
@end
Error response which is used in case of Objects API call failure:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNErrorStatus : PNStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
@end
Set Channel Metadata
Description
Set metadata for a Channel in the database, optionally including the custom data object for each.
Method(s)
To Set Channel Metadata
you can use the following method(s) in the Cocoa SDK:
- (void)setChannelMetadataWithRequest:(PNSetChannelMetadataRequest *)request completion:(nullable PNSetChannelMetadataCompletionBlock)block
Parameter Type Required Description request
PNSetChannelMetadataRequest Yes Set channel metadata
request with all information which should be associated withchannel
.block
PNSetChannelMetadataCompletionBlock No Set channel metadata
request completionblock
.
PNSetChannelMetadataRequest
Parameter | Type | Required | Description |
---|---|---|---|
custom | NSDictionary | No | Additional / complex attributes which should be stored in metadata associated with specified channel. Objects filtering language doesn’t support filtering by custom properties. |
information | NSString | No | Description which should be stored in metadata associated with specified channel. |
includeFields | PNChannelFields | No | Bitfield set to fields which should be returned with response. Supported fields:
PNChannelCustomField ) can be reset by setting 0. |
name | NSString | No | Name which should be stored in metadata associated with specified channel. |
channel | NSString | No | Create and configure set channel metadata request. channel - Name of channel for which metadata should be set. |
Basic Usage
PNSetChannelMetadataRequest *request = [PNSetChannelMetadataRequest requestWithChannel:@"channel"];
// Add this request option, if returned metadata model should have value which has been set to
// 'custom' property.
request.includeFields = PNChannelCustomField;
request.custom = @{ @"responsibilities": @"Manage tests", @"status": @"offline" };
request.name = @"Updated channel name";
[self.client setChannelMetadataWithRequest:request completion:^(PNSetChannelMetadataStatus *status) {
if (!status.isError) {
/**
* Channel metadata successfully has been set.
* Channel metadata information available here: status.data.metadata
*/
} else {
/**
* Handle channel metadata update error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
}];
Response
Response objects which is returned by client when set channel metadata
Object API is used:
@interface PNSetChannelMetadataData : PNServiceData
// Associated channel's metadata object.
@property (nonatomic, nullable, readonly, strong) PNChannelMetadata *metadata;
@end
@interface PNSetChannelMetadataStatus : PNAcknowledgmentStatus
// Set channel metadata request processed information.
@property (nonatomic, readonly, strong) PNSetChannelMetadataData *data;
@end
Set Channel Metadata (Builder Pattern)
Method(s)
```objectivec
objects().setChannelMetadata(NSString *).includeFields(PNChannelFields).channel(NSString).name(NSString).information(NSString).custom(NSDictionary).performWithCompletion(PNFetchChannelMetadataCompletionBlock)
```
Parameter | Type | Required | Description |
---|---|---|---|
channel | NSString | Yes | Name of channel with which new metadata should be associated. |
name | NSString | No | Name which should stored in metadata associated with specified channel . |
information | NSString | No | Description which should be stored in metadata associated with specified channel . |
custom | NSDictionary | No | Additional information which should be stored in metadata associated with specified channel . Objects filtering language doesn’t support filtering by custom properties. |
includeFields | PNChannelFields | No | PNChannelCustomField - include field with additional information from metadata which has been used during channel metadata set requests. Default: PNChannelCustomField Default value can be reset by setting 0. |
block | PNSetChannelMetadataCompletionBlock | No | Set channel metadata request completion block . |
Note
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
self.client.objects().setChannelMetadata(@"channel")
.name(@"Admin")
.information(@"Administrative channel")
.custom(@{ @"responsibilities": @"Manage access to protected resources" })
.includeFields(PNChannelCustomField)
.performWithCompletion(^(PNSetChannelMetadataStatus *status) {
if (!status.isError) {
/**
* Channel metadata successfully has been set.
* Channel metadata information available here: status.data.metadata
*/
} else {
/**
* Handle channel metadata update error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
});
Response
Response objects which is returned by client when set channel metadata
Object API is used:
@interface PNSetChannelMetadataData : PNServiceData
// Associated channel's metadata object.
@property (nonatomic, nullable, readonly, strong) PNChannelMetadata *metadata;
@end
@interface PNSetChannelMetadataStatus : PNAcknowledgmentStatus
// Set channel metadata request processed information.
@property (nonatomic, readonly, strong) PNSetChannelMetadataData *data;
@end
Remove Channel Metadata
Description
Removes the metadata from a specified channel.
Method(s)
To Remove Channel Metadata
you can use the following method(s) in the Cocoa SDK:
- (void)removeChannelMetadataWithRequest:(PNRemoveChannelMetadataRequest *)request completion:(nullable PNRemoveChannelMetadataCompletionBlock)block
Parameter Type Required Description request
PNRemoveChannelMetadataRequest Yes Remove channel metadata
request with information about existing metadata.block
PNRemoveChannelMetadataCompletionBlock No Remove channel metadata
request completionblock
.
PNRemoveChannelMetadataRequest
Parameter | Type | Required | Description |
---|---|---|---|
channel | NSString | No | Create and configure remove channel metadata request. channel - Name of channel for which metadata should be removed. |
Basic Usage
PNRemoveChannelMetadataRequest *request = [PNRemoveChannelMetadataRequest requestWithChannel:@"channel"];
[self.client removeChannelMetadataWithRequest:request completion:^(PNAcknowledgmentStatus *status) {
if (!status.isError) {
// Channel metadata successfully removed.
} else {
/**
* Handle channel metadata remove error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
}];
Response
Response objects which is returned by client when remove channel metadata
Object API is used:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNAcknowledgmentStatus : PNErrorStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
@end
Remove Channel Metadata (Builder Pattern)
Method(s)
objects().removeChannelMetadata(NSString *).performWithCompletion(nullable PNRemoveChannelMetadataCompletionBlock)
Parameter Type Required Description channel
NSString Yes Name of channel for which associated metadata
should be removed.block
PNRemoveChannelMetadataCompletionBlock No Remove channel metadata
request completionblock
.
Note
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
self.client.objects().removeChannelMetadata(@"channel")
.performWithCompletion(^(PNAcknowledgmentStatus *status) {
if (!status.isError) {
// Channel metadata successfully removed.
} else {
/**
* Handle channel metadata remove error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
});
Response
Response objects which is returned by client when remove channel metadata
Object API is used:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNAcknowledgmentStatus : PNErrorStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
@end
Channel Memberships
Get Channel Memberships
Description
The method returns a list of channel memberships for a user. This method doesn't return a user's subscriptions.
Method(s)
To Get Memberships
you can use the following method(s) in the Cocoa SDK:
- (void)membershipsWithRequest:(PNFetchMembershipsRequest *)request completion:(PNFetchMembershipsCompletionBlock)block
Parameter Type Required Description request
PNFetchMembershipsRequest Yes Fetch UUID's memberships
request with all information which should be used to fetch existingUUID's memberships
.block
PNFetchMembershipsCompletionBlock Yes Fetch UUID's memberships
request completionblock
.
PNFetchMembershipsRequest
Parameter | Type | Required | Description |
---|---|---|---|
sort | NSArray<NSString *> | No | List of criteria (name of field) which should be used for sorting in ascending order. Use asc or desc to specify sort direction. |
includeFields | NSArray<NSString *> | No | Bitfield set to fields which should be returned with response. Supported fields:
PNMembershipsTotalCountField ) can be reset by setting 0. |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check this |
start | NSString | No | Previously-returned cursor bookmark for fetching the next page. |
end | NSString | No | Previously-returned cursor bookmark for fetching the previous page. Ignored if you also supply the start parameter. |
limit | NSUInteger | No | Number of members to return in response. Will be set to 100 (which is also maximum value) if not specified. |
Basic Usage
PNFetchMembershipsRequest *request = [PNFetchMembershipsRequest requestWithUUID:@"uuid"];
request.start = @"<next from previous request>";
// Add this request option, if returned membership models should have value which has been set to
// 'custom' and 'channel' properties.
request.includeFields = PNMembershipCustomField | PNMembershipChannelField | PNMembershipsTotalCountField;
request.limit = 40;
[self.client membershipsWithRequest:request
completion:^(PNFetchMembershipsResult *result, PNErrorStatus *status) {
if (!status.isError) {
/**
* UUID's memberships successfully fetched.
* Result object has following information:
* result.data.memberships - list of UUID's memberships,
* result.data.next - cursor bookmark for fetching the next page,
* result.data.prev - cursor bookmark for fetching the previous page,
* result.data.totalCount - total number of UUID's memberships
*/
} else {
/**
* Handle UUID's memberships fetch error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
}];
Response
Response objects which is returned by client when fetch memberships
Object API is used:
@interface PNFetchMembershipsData : PNServiceData
// List of fetched memberships.
@property (nonatomic, readonly, strong) NSArray<PNMembership *> *memberships;
// Cursor bookmark for fetching the next page.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Cursor bookmark for fetching the previous page.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of members created for current subscribe key.
*
* Value will be 0 in case if PNMembershipsTotalCountField not added to 'includeFields'
* of PNSetMembershipsRequest / PNRemoveMembershipsRequest / PNManageMembershipsRequest or
* PNFetchMembershipsRequest.
*/
@property (nonatomic, readonly, assign) NSUInteger totalCount;
@end
@interface PNFetchMembershipsResult : PNAcknowledgmentStatus
// Fetch memberships request processed information.
@property (nonatomic, readonly, strong) PNFetchMembershipsData *data;
@end
Error response which is used in case of Objects API call failure:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNErrorStatus : PNStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
@end
Get Channel Memberships (Builder Pattern)
Method(s)
objects().memberships().uuid(NSString *).includeFields(PNMembershipFields).includeCount(BOOL).filter(NSString *).sort(NSArray<NSString *> *).limit(NSUInteger).start(NSString *).end(NSString *).performWithCompletion(PNFetchMembershipsCompletionBlock)
Parameter Type Required Description uuid
NSString No Name of channel from which members should be fetched. includeFields
PNMembershipFields No PNMembershipCustomField
- include field with additional information frommetadata
which has been associated withUUID
duringmembership set
requests.PNMembershipChannelField
- includechannel's metadata
into response (not only name).PNMembershipChannelCustomField
- includechannel's
additional information which has been used duringchannel metadata set
requests.
includeCount
BOOL No Whether total count of objects should be included in response or not. Default: YES
filter
NSString No Expression to filter out results basing on specified criteria. For more details on the supported grammar, check this sort
NSArray No List of criteria (name of field) which should be used for sorting in ascending order. To change sorting order, append :asc
(ascending used by default) or:desc
(descending) to field name.limit
NSUInteger No Maximum number of objects per fetched page. Default: 100
(which is also maximum value)start
NSString No Cursor value to navigate to next fetched result page. end
NSString No Cursor value to navigate to previous fetched result page. Will be ignored if you also supply the start
parameter.block
PNFetchMembershipsCompletionBlock Yes Fetch UUID's memberships
request completionblock
.
Note
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
self.client.objects().memberships()
.uuid(@"uuid")
.includeCount(YES)
.limit(40)
.includeFields(PNMembershipCustomField | PNMembershipChannelField)
.performWithCompletion(^(PNFetchMembershipsResult *result, PNErrorStatus *status) {
if (!status.isError) {
/**
* UUID's memberships successfully fetched.
* Result object has following information:
* result.data.memberships - list of UUID's memberships,
* result.data.next - cursor bookmark for fetching the next page,
* result.data.prev - cursor bookmark for fetching the previous page,
* result.data.totalCount - total number of UUID's memberships
*/
} else {
/**
* Handle UUID's memberships fetch error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
});
Response
Response objects which is returned by client when fetch memberships
Object API is used:
@interface PNFetchMembershipsData : PNServiceData
// List of fetched memberships.
@property (nonatomic, readonly, strong) NSArray<PNMembership *> *memberships;
// Cursor bookmark for fetching the next page.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Cursor bookmark for fetching the previous page.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of members created for current subscribe key.
*
* Value will be 0 in case if PNMembershipsTotalCountField not added to 'includeFields'
* of PNSetMembershipsRequest / PNRemoveMembershipsRequest / PNManageMembershipsRequest or
* PNFetchMembershipsRequest.
*/
@property (nonatomic, readonly, assign) NSUInteger totalCount;
@end
@interface PNFetchMembershipsResult : PNAcknowledgmentStatus
// Fetch memberships request processed information.
@property (nonatomic, readonly, strong) PNFetchMembershipsData *data;
@end
Error response which is used in case of Objects API call failure:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNErrorStatus : PNStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
@end
Set Channel Memberships
Description
Set channel memberships for a UUID.
Method(s)
To Set Memberships
you can use the following method(s) in the Cocoa SDK:
- (void)setMembershipsWithRequest:(PNSetMembershipsRequest *)request completion:(nullable PNManageMembershipsCompletionBlock)block
Parameter Type Required Description request
PNSetMembershipsRequest Yes Set UUID's memberships
request with information which should be used to setchannels
membership.block
PNManageMembershipsCompletionBlock No Set UUID's memberships
request completionblock
.
PNSetMembershipsRequest
Parameter | Type | Required | Description |
---|---|---|---|
sort | NSArray<NSString *> | No | List of criteria (name of field) which should be used for sorting in ascending order. Use asc or desc to specify sort direction. |
includeFields | PNMembershipFields | No | Bitfield set to fields which should be returned with response. Supported fields:
PNMembershipsTotalCountField ) can be reset by setting 0. |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check this |
start | NSString | No | Previously-returned cursor bookmark for fetching the next page. |
end | NSString | No | Previously-returned cursor bookmark for fetching the previous page. Ignored if you also supply the start parameter. |
limit | NSUInteger | No | Number of objects to return in response. Will be set to 100 (which is also maximum value) if not specified. |
Basic Usage
NSArray<NSDictionary *> *channels = @[
@{ @"channel": @"channel1", @"custom": @{ @"role": @"moderator" } }
];
PNSetMembershipsRequest *request = [PNSetMembershipsRequest requestWithUUID:@"uuid"
channels:channels];
// Add this request option, if returned membership models should have value which has been set to
// 'custom' and 'channel' properties.
request.includeFields = PNMembershipCustomField | PNMembershipChannelField | PNMembershipsTotalCountField;
request.limit = 40;
[self.client setMembershipsWithRequest:request completion:^(PNManageMembershipsStatus *status) {
if (!status.isError) {
/**
* UUID's memberships successfully set.
* Result object has following information:
* status.data.memberships - list of UUID's existing memberships,
* status.data.next - cursor bookmark for fetching the next page,
* status.data.prev - cursor bookmark for fetching the previous page,
* status.data.totalCount - total number of UUID's memberships.
*/
} else {
/**
* Handle UUID's memberships set error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
}];
Response
Response objects which is returned by client when set memberships
Object API is used:
@interface PNManageMembershipsData : PNServiceData
// List of existing memberships.
@property (nonatomic, readonly, strong) NSArray<PNMembership *> *memberships;
// Cursor bookmark for fetching the next page.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Cursor bookmark for fetching the previous page.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of existing objects.
*
* Value will be 0 in case if PNMembershipsTotalCountField not added to 'includeFields'
* of PNSetMembershipsRequest / PNRemoveMembershipsRequest / PNManageMembershipsRequest or
* PNFetchMembershipsRequest.
*/
@property (nonatomic, readonly, assign) NSUInteger totalCount;
@end
@interface PNManageMembershipsStatus : PNAcknowledgmentStatus
// Memberships set / remove / manage request processed information.
@property (nonatomic, readonly, strong) PNManageMembershipsData *data;
@end
Set Channel Memberships (Builder Pattern)
Method(s)
objects().setMemberships().uuid(NSString *).channels(NSArray<NSDictionary *> *).includeFields(PNMembershipFields).includeCount(BOOL).filter(NSString *).sort(NSArray<NSString *> *).limit(NSUInteger).start(NSString *).end(NSString *).performWithCompletion(nullable PNManageMembershipsCompletionBlock)
Parameter Type Required Description uuid
NSString No Identifier for which memberships should be set. Default: configured PubNub client uuid
channels
NSArray No List of channels
for whichmetadata
associated with each of them in context ofUUID
should be set. Each entry is dictionary withchannel
andoptional
custom
fields.custom
should be dictionary with simple objects:NSString
andNSNumber
.includeFields
PNMembershipFields No PNMembershipCustomField
- include field with additional information frommetadata
which has been associated withUUID
duringmembership set
requests.PNMembershipChannelField
- includechannel's metadata
into response (not only name).PNMembershipChannelCustomField
- includechannel's
additional information which has been used duringchannel metadata set
requests.
includeCount
BOOL No Whether total count of objects should be included in response or not. Default: YES
filter
NSString No Expression to filter out results basing on specified criteria. For more details on the supported grammar, check this sort
NSArray No List of criteria (name of field) which should be used for sorting in ascending order. To change sorting order, append :asc
(ascending used by default) or:desc
(descending) to field name.limit
NSUInteger No Maximum number of objects per fetched page. Default: 100
(which is also maximum value)start
NSString No Cursor value to navigate to next fetched result page. end
NSString No Cursor value to navigate to previous fetched result page. Will be ignored if you also supply the start
parameter.block
PNManageMembershipsCompletionBlock No Set UUID's memberships
request completionblock
.
Note
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
NSArray<NSDictionary *> *channels = @[
@{ @"channel": @"channel1", @"custom": @{ @"role": @"moderator" } }
];
self.client.objects().setMemberships()
.uuid(@"uuid")
.channels(channels)
.includeCount(YES)
.limit(40)
.includeFields(NMembershipCustomField | PNMembershipChannelField)
.performWithCompletion(^(PNManageMembershipsStatus *status) {
if (!status.isError) {
/**
* UUID's memberships successfully set.
* Result object has following information:
* status.data.memberships - list of UUID's existing memberships,
* status.data.next - cursor bookmark for fetching the next page,
* status.data.prev - cursor bookmark for fetching the previous page,
* status.data.totalCount - total number of UUID's memberships.
*/
} else {
/**
* Handle UUID's memberships set error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
});
Response
Response objects which is returned by client when set memberships
Object API is used:
@interface PNManageMembershipsData : PNServiceData
// List of existing memberships.
@property (nonatomic, readonly, strong) NSArray<PNMembership *> *memberships;
// Cursor bookmark for fetching the next page.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Cursor bookmark for fetching the previous page.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of existing objects.
*
* Value will be 0 in case if PNMembershipsTotalCountField not added to 'includeFields'
* of PNSetMembershipsRequest / PNRemoveMembershipsRequest / PNManageMembershipsRequest or
* PNFetchMembershipsRequest.
*/
@property (nonatomic, readonly, assign) NSUInteger totalCount;
@end
@interface PNManageMembershipsStatus : PNAcknowledgmentStatus
// Memberships set / remove / manage request processed information.
@property (nonatomic, readonly, strong) PNManageMembershipsData *data;
@end
Remove Channel Memberships
Description
Remove channel memberships for a UUID.
Method(s)
To Remove Memberships
you can use the following method(s) in the Cocoa SDK:
- (void)removeMembershipsWithRequest:(PNRemoveMembershipsRequest *)request completion:(nullable PNManageMembershipsCompletionBlock)block
Parameter Type Required Description request
PNRemoveMembershipsRequest Yes Remove UUID's memberships
request with information which should be used to removechannels
membership.block
PNManageMembershipsCompletionBlock No Remove UUID's memberships
request completion block.
PNRemoveMembershipsRequest
Parameter | Type | Required | Description |
---|---|---|---|
sort | NSArray<NSString *> | No | List of criteria (name of field) which should be used for sorting in ascending order. Use asc or desc to specify sort direction. |
includeFields | PNMembershipFields | No | Bitfield set to fields which should be returned with response. Supported fields:
PNMembershipsTotalCountField ) can be reset by setting 0. |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check this |
start | NSString | No | Previously-returned cursor bookmark for fetching the next page. |
end | NSString | No | Previously-returned cursor bookmark for fetching the previous page. Ignored if you also supply the start parameter. |
limit | NSUInteger | No | Number of objects to return in response. Will be set to 100 (which is also maximum value) if not specified. |
Basic Usage
NSArray<NSString *> *channels = @[@"channel1", @"channel2"];
PNRemoveMembershipsRequest *request = [PNRemoveMembershipsRequest requestWithUUID:@"uuid"
channels:channels];
// Add this request option, if returned membership models should have value which has been set to
// 'custom' and 'channel' properties.
request.includeFields = PNMembershipCustomField | PNMembershipChannelField | PNMembershipsTotalCountField;
request.limit = 40;
[self.client removeMembershipsWithRequest:request
completion:^(PNManageMembershipsStatus *status) {
if (!status.isError) {
/**
* UUID's memberships successfully removed.
* Result object has following information:
* status.data.memberships - list of UUID's existing memberships,
* status.data.next - cursor bookmark for fetching the next page,
* status.data.prev - cursor bookmark for fetching the previous page,
* status.data.totalCount - total number of UUID's memberships.
*/
} else {
/**
* Handle UUID's memberships remove error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
}];
Response
Response objects which is returned by client when remove memberships
Object API is used:
@interface PNManageMembershipsData : PNServiceData
// List of existing memberships.
@property (nonatomic, readonly, strong) NSArray<PNMembership *> *memberships;
// Cursor bookmark for fetching the next page.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Cursor bookmark for fetching the previous page.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of existing objects.
*
* Value will be 0 in case if PNMembershipsTotalCountField not added to 'includeFields'
* of PNSetMembershipsRequest / PNRemoveMembershipsRequest / PNManageMembershipsRequest or
* PNFetchMembershipsRequest.
*/
@property (nonatomic, readonly, assign) NSUInteger totalCount;
@end
@interface PNManageMembershipsStatus : PNAcknowledgmentStatus
// Memberships set / remove / manage request processed information.
@property (nonatomic, readonly, strong) PNManageMembershipsData *data;
@end
Remove Channel Memberships (Builder Pattern)
Method(s)
objects().removeMemberships().uuid(NSString *).channels(NSArray<NSString *> *).includeFields(PNMemberFields).includeCount(BOOL).filter(NSString *).sort(NSArray<NSString *> *).limit(NSUInteger).start(NSString *).end(NSString *).performWithCompletion(nullable PNManageMembershipsCompletionBlock)
Parameter Type Required Description uuid
NSString No Identifier for which memberships should be removed. Default: configured PubNub client uuid
channels
NSArray No List of channels
from whichUUID
should be removed asmember
.includeFields
PNMembershipFields No PNMembershipCustomField
- include field with additional information frommetadata
which has been associated withUUID
duringmembership set
requests.PNMembershipChannelField
- includechannel's metadata
into response (not only name).PNMembershipChannelCustomField
- includechannel's
additional information which has been used duringchannel metadata set
requests.
includeCount
BOOL No Whether total count of members
should be included in response or not. Default:YES
filter
NSString No Expression to filter out results basing on specified criteria. For more details on the supported grammar, check this sort
NSArray No List of criteria (name of field) which should be used for sorting in ascending order. To change sorting order, append :asc
(ascending used by default) or:desc
(descending) to field name.limit
NSUInteger No Maximum number of objects per fetched page. Default: 100
(which is also maximum value)start
NSString No Cursor value to navigate to next fetched result page. end
NSString No Cursor value to navigate to previous fetched result page. Will be ignored if you also supply the start
parameter.block
PNManageMembershipsCompletionBlock No Remove UUID's memberships
request completion block.
Note
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
self.client.objects().removeMemberships()
.uuid(@"uuid")
.channels(@[@"channel1", @"channel2"])
.includeCount(YES)
.limit(40)
.includeFields(PNMembershipCustomField | PNMembershipChannelField)
.performWithCompletion(^(PNManageMembershipsStatus *status) {
if (!status.isError) {
/**
* UUID's memberships successfully removed.
* Result object has following information:
* status.data.memberships - list of UUID's existing memberships,
* status.data.next - cursor bookmark for fetching the next page,
* status.data.prev - cursor bookmark for fetching the previous page,
* status.data.totalCount - total number of UUID's memberships.
*/
} else {
/**
* Handle UUID's memberships remove error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
});
Response
Response objects which is returned by client when remove memberships
Object API is used:
@interface PNManageMembershipsData : PNServiceData
// List of existing memberships.
@property (nonatomic, readonly, strong) NSArray<PNMembership *> *memberships;
// Cursor bookmark for fetching the next page.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Cursor bookmark for fetching the previous page.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of existing objects.
*
* Value will be 0 in case if PNMembershipsTotalCountField not added to 'includeFields'
* of PNSetMembershipsRequest / PNRemoveMembershipsRequest / PNManageMembershipsRequest or
* PNFetchMembershipsRequest.
*/
@property (nonatomic, readonly, assign) NSUInteger totalCount;
@end
@interface PNManageMembershipsStatus : PNAcknowledgmentStatus
// Memberships set / remove / manage request processed information.
@property (nonatomic, readonly, strong) PNManageMembershipsData *data;
@end
Manage Channel Memberships
Description
The method Set and Remove channel memberships for a user.
Method(s)
To Manage Memberships
you can use the following method(s) in the Cocoa SDK:
- (void)manageMembershipsWithRequest:(PNManageMembershipsRequest *)request completion:(nullable PNManageMembershipsCompletionBlock)block
Parameter Type Required Description request
PNManageMembershipsRequest Yes Manage UUID's memberships
request with information what modifications toUUID's memberships
should be done (set
/remove
channels
).block
PNManageMembershipsCompletionBlock No Manage UUID's memberships
request completionblock
.
PNManageMembershipsRequest
Parameter | Type | Required | Description |
---|---|---|---|
setChannels | NSArray<NSDictionary *> | No | List of channels within which UUID should be set as member. Each entry is dictionary with channel and optional custom fields. custom should be dictionary with simple objects: NSString and NSNumber. |
removeChannels | NSArray<NSString *> | No | List of channels from which UUID should be removed as member. |
sort | NSArray<NSString *> | No | List of criteria (name of field) which should be used for sorting in ascending order. To change sorting order, append :asc (ascending used by default) or :desc (descending) to field name. |
includeFields | PNMembershipFields | No | Bitfield set to fields which should be returned with response. Supported fields:
PNMembershipsTotalCountField ) can be reset by setting 0. |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check this |
start | NSString | No | Previously-returned cursor bookmark for fetching the next page. |
end | NSString | No | Previously-returned cursor bookmark for fetching the previous page. Ignored if you also supply the start parameter. |
limit | NSUInteger | No | Number of objects to return in response. Will be set to 100 (which is also maximum value) if not specified. |
Basic Usage
PNManageMembershipsRequest *request = [PNManageMembershipsRequest requestWithUUID:@"uuid"];
request.setChannels = @[
@{ @"channel": @"channel1", @"custom": @{ @"role": @"moderator" } }
];
request.removeChannels = @[@"channel3", @"channel4"];
// Add this request option, if returned membership models should have value which has been set to
// 'custom' and 'channel' properties.
request.includeFields = PNMembershipCustomField | PNMembershipChannelField | PNMembershipsTotalCountField;
request.limit = 40;
[self.client manageMembershipsWithRequest:request
completion:^(PNManageMembershipsStatus *status) {
if (!status.isError) {
/**
* UUID's memberships successfully set.
* Result object has following information:
* status.data.memberships - list of UUID's existing memberships,
* status.data.next - cursor bookmark for fetching the next page,
* status.data.prev - cursor bookmark for fetching the previous page,
* status.data.totalCount - total number of UUID's memberships.
*/
} else {
/**
* Handle UUID's memberships set error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
}];
Response
Response objects which is returned by client when manage memberships
Object API is used:
@interface PNManageMembershipsData : PNServiceData
// List of existing memberships.
@property (nonatomic, readonly, strong) NSArray<PNMembership *> *memberships;
// Cursor bookmark for fetching the next page.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Cursor bookmark for fetching the previous page.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of existing objects.
*
* Value will be 0 in case if PNMembershipsTotalCountField not added to 'includeFields'
* of PNSetMembershipsRequest / PNRemoveMembershipsRequest / PNManageMembershipsRequest or
* PNFetchMembershipsRequest.
*/
@property (nonatomic, readonly, assign) NSUInteger totalCount;
@end
@interface PNManageMembershipsStatus : PNAcknowledgmentStatus
// Memberships set / remove / manage request processed information.
@property (nonatomic, readonly, strong) PNManageMembershipsData *data;
@end
Manage Channel Memberships (Builder Pattern)
Method(s)
objects().manageMemberships().uuid(NSString *).set(NSArray<NSDictionary *> *).remove(NSArray<NSString *> *).includeFields(PNMemberFields).includeCount(BOOL).filter(NSString *).sort(NSArray<NSString *> *).limit(NSUInteger).start(NSString *).end(NSString *).performWithCompletion(nullable PNManageMembershipsCompletionBlock)
Parameter Type Required Description uuid
NSString No Identifier for which memberships should be set. Default: configured PubNub client uuid
set
NSArray No List of channels
for whichmetadata
associated with each of them in context ofUUID
should be set. Each entry is dictionary withchannel
andoptional
custom
fields.custom
should be dictionary with simple objects:NSString
andNSNumber
.remove
NSArray No List of channels
from whichUUID
should be removed asmember
.includeFields
PNMembershipFields No PNMembershipCustomField
- include field with additional information frommetadata
which has been associated withUUID
duringmembership set
requests.PNMembershipChannelField
- includechannel's metadata
into response (not only name).PNMembershipChannelCustomField
- includechannel's
additional information which has been used duringchannel metadata set
requests.
includeCount
BOOL No Whether total count of objects should be included in response or not. Default: YES
filter
NSString No Expression to filter out results basing on specified criteria. For more details on the supported grammar, check this sort
NSArray No List of criteria (name of field) which should be used for sorting in ascending order. To change sorting order, append :asc
(ascending used by default) or:desc
(descending) to field name.limit
NSUInteger No Maximum number of objects per fetched page. Default: 100
(which is also maximum value)start
NSString No Cursor value to navigate to next fetched result page. end
NSString No Cursor value to navigate to previous fetched result page. Will be ignored if you also supply the start
parameter.block
PNManageMembershipsCompletionBlock No Manage UUID's memberships
request completionblock
.
Note
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
NSArray<NSDictionary *> *setChannels = @[
@{ @"channel": @"channel1", @"custom": @{ @"role": @"moderator" } }
];
NSArray<NSString *> *removeChannels = @[@"channel3", @"channel4"];
self.client.objects().manageMemberships()
.uuid(@"uuid")
.set(setChannels)
.remove(removeChannels)
.includeCount(YES)
.limit(40)
.includeFields(PNMembershipCustomField | PNMembershipChannelField)
.performWithCompletion(^(PNManageMembershipsStatus *status) {
if (!status.isError) {
/**
* UUID's memberships successfully set.
* Result object has following information:
* status.data.memberships - list of UUID's existing memberships,
* status.data.next - cursor bookmark for fetching the next page,
* status.data.prev - cursor bookmark for fetching the previous page,
* status.data.totalCount - total number of UUID's memberships.
*/
} else {
/**
* Handle UUID's memberships set error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
});
Response
Response objects which is returned by client when manage memberships
Object API is used:
@interface PNManageMembershipsData : PNServiceData
// List of existing memberships.
@property (nonatomic, readonly, strong) NSArray<PNMembership *> *memberships;
// Cursor bookmark for fetching the next page.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Cursor bookmark for fetching the previous page.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of existing objects.
*
* Value will be 0 in case if PNMembershipsTotalCountField not added to 'includeFields'
* of PNSetMembershipsRequest / PNRemoveMembershipsRequest / PNManageMembershipsRequest or
* PNFetchMembershipsRequest.
*/
@property (nonatomic, readonly, assign) NSUInteger totalCount;
@end
@interface PNManageMembershipsStatus : PNAcknowledgmentStatus
// Memberships set / remove / manage request processed information.
@property (nonatomic, readonly, strong) PNManageMembershipsData *data;
@end
Channel Members
Get Channel Members
Description
The method returns a list of members in a channel. The list will include user metadata for members that have additional metadata stored in the database.
Method(s)
To Get Channel Members
you can use the following method(s) in the Cocoa SDK:
- (void)channelMembersWithRequest:(PNFetchChannelMembersRequest *)request completion:(PNFetchChannelMembersCompletionBlock)block
Parameter Type Required Description request
PNFetchChannelMembersRequest Yes Fetch channel's members
request with all information which should be used to fetch existingchannel's members
.block
PNFetchChannelMembersCompletionBlock Yes Fetch channel's members
request completion block.
PNFetchChannelMembersRequest
Parameter | Type | Required | Description |
---|---|---|---|
sort | NSArray<NSString *> | No | List of criteria (name of field) which should be used for sorting in ascending order. Use asc or desc to specify sort direction. |
includeFields | PNChannelMemberFields | No | Bitfield set to fields which should be returned with response. Supported fields:
PNChannelMembersTotalCountField ) can be reset by setting 0. |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check this |
start | NSString | No | Previously-returned cursor bookmark for fetching the next page. |
end | NSString | No | Previously-returned cursor bookmark for fetching the previous page. Ignored if you also supply the start parameter. |
limit | NSUInteger | No | Number of members to return in response. Will be set to 100 (which is also maximum value) if not specified. |
Basic Usage
PNFetchChannelMembersRequest *request = [PNFetchChannelMembersRequest requestWithChannel:@"channel"];
request.start = @"<next from previous request>";
// Add this request option, if returned member models should have value which has been set to
// 'custom' and 'uuid' properties.
request.includeFields = PNChannelMemberCustomField | PNChannelMemberUUIDField | PNChannelMembersTotalCountField;
request.limit = 40;
[self.client channelMembersWithRequest:request
completion:^(PNFetchChannelMembersResult *result, PNErrorStatus *status) {
if (!status.isError) {
/**
* Channel's members successfully fetched.
* Result object has following information:
* result.data.members - list of channel's members,
* result.data.next - cursor bookmark for fetching the next page,
* result.data.prev - cursor bookmark for fetching the previous page,
* result.data.totalCount - total number of channel's members.
*/
} else {
/**
* Handle channel's members fetch error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
}];
Response
Response objects which is returned by client when fetch members
Object API is used:
@interface PNFetchChannelMembersData : PNServiceData
// List of fetched members.
@property (nonatomic, readonly, strong) NSArray<PNChannelMember *> *members;
// Cursor bookmark for fetching the next page.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Cursor bookmark for fetching the previous page.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of members created for current subscribe key.
*
* Value will be 0 in case if PNChannelMembersTotalCountField not added to 'includeFields'
* of PNSetChannelMembersRequest / PNRemoveChannelMembersRequest /
* PNManageChannelMembersRequest or PNFetchChannelMembersRequest.
*/
@property (nonatomic, readonly, assign) NSUInteger totalCount;
@end
@interface PNFetchChannelMembersResult : PNAcknowledgmentStatus
// Fetch members request processed information.
@property (nonatomic, readonly, strong) PNFetchChannelMembersData *data;
@end
Error response which is used in case of Objects API call failure:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNErrorStatus : PNStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
@end
Get Channel Members (Builder Pattern)
Method(s)
objects().channelMembers(NSString *).includeFields(PNChannelMemberFields).includeCount(BOOL).filter(NSString *).sort(NSArray<NSString *> *).limit(NSUInteger).start(NSString *).end(NSString *).performWithCompletion(PNFetchChannelMembersCompletionBlock)
Parameter Type Required Description channel
NSString Yes Name of channel from which members should be fetched. includeFields
PNChannelMemberFields No PNChannelMemberCustomField
- include field with additional information frommetadata
which has been associated withUUID
duringchannel member add
requests.PNChannelMemberUUIDField
- includeUUID's metadata
into response (not only identifier).PNChannelMemberUUIDCustomField
- includeUUID's
additional information which has been used duringUUID metadata set
requests.
includeCount
BOOL No Whether total count of objects should be included in response or not. Default: YES
filter
NSString No Expression to filter out results basing on specified criteria. For more details on the supported grammar, check this sort
NSArray No List of criteria (name of field) which should be used for sorting in ascending order. To change sorting order, append :asc
(ascending used by default) or:desc
(descending) to field name.limit
NSUInteger No Maximum number of objects per fetched page. Default: 100
(which is also maximum value)start
NSString No Cursor value to navigate to next fetched result page. end
NSString No Cursor value to navigate to previous fetched result page. Will be ignored if you also supply the start
parameter.block
PNFetchChannelMembersCompletionBlock Yes Fetch channel's members
request completion block.
Note
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
self.client.objects().channelMembers(@"channel")
.includeCount(YES)
.limit(40)
.includeFields(PNChannelMemberCustomField | PNChannelMemberUUIDField)
.performWithCompletion(^(PNFetchChannelMembersResult *result, PNErrorStatus *status) {
if (!status.isError) {
/**
* Channel's members successfully fetched.
* Result object has following information:
* result.data.members - list of channel's members,
* result.data.next - cursor bookmark for fetching the next page,
* result.data.prev - cursor bookmark for fetching the previous page,
* result.data.totalCount - total number of channel's members.
*/
} else {
/**
* Handle channel's members fetch error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
});
Response
Response objects which is returned by client when fetch members
Object API is used:
@interface PNFetchChannelMembersData : PNServiceData
// List of fetched members.
@property (nonatomic, readonly, strong) NSArray<PNChannelMember *> *members;
// Cursor bookmark for fetching the next page.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Cursor bookmark for fetching the previous page.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of members created for current subscribe key.
*
* Value will be 0 in case if PNChannelMembersTotalCountField not added to 'includeFields'
* of PNSetChannelMembersRequest / PNRemoveChannelMembersRequest /
* PNManageChannelMembersRequest or PNFetchChannelMembersRequest.
*/
@property (nonatomic, readonly, assign) NSUInteger totalCount;
@end
@interface PNFetchChannelMembersResult : PNAcknowledgmentStatus
// Fetch members request processed information.
@property (nonatomic, readonly, strong) PNFetchChannelMembersData *data;
@end
Error response which is used in case of Objects API call failure:
@interface PNErrorData : PNServiceData
// Stringified error information.
@property (nonatomic, readonly, strong) NSString *information;
@end
@interface PNErrorStatus : PNStatus
// Whether status object represent error or not.
@property (nonatomic, readonly, assign, getter = isError) BOOL error;
// Additional information related to error status object.
@property (nonatomic, readonly, strong) PNErrorData *errorData;
@end
Set Channel Members
Description
This method sets members in a channel.
Method(s)
To Set Channel Members
you can use the following method(s) in the Cocoa SDK:
- (void)setChannelMembersWithRequest:(PNSetChannelMembersRequest *)request completion:(nullable PNManageChannelMembersCompletionBlock)block
Parameter Type Required Description request
PNSetChannelMembersRequest Yes Set channel's members
list request with information which should be used to setUUID
member.block
PNManageChannelMembersCompletionBlock No Set channel's members
list request completionblock
.
PNSetMembersRequest
Parameter | Type | Required | Description |
---|---|---|---|
sort | NSArray<NSString *> | No | List of criteria (name of field) which should be used for sorting in ascending order. Use asc or desc to specify sort direction. |
includeFields | PNChannelMemberFields | No | Bitfield set to fields which should be returned with response. Supported fields:
PNChannelMembersTotalCountField ) can be reset by setting 0. |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check this |
start | NSString | No | Previously-returned cursor bookmark for fetching the next page. |
end | NSString | No | Previously-returned cursor bookmark for fetching the previous page. Ignored if you also supply the start parameter. |
limit | NSUInteger | No | Number of objects to return in response. Will be set to 100 (which is also maximum value) if not specified. |
Basic Usage
NSArray>NSDictionary *> *uuids = @[
@{ @"uuid": @"uuid2", @"custom": @{ @"role": @"moderator" } }
];
PNSetChannelMembersRequest *request = [PNSetChannelMembersRequest requestWithChannel:@"channel" uuids:uuids];
// Add this request option, if returned member models should have value which has been set to
// 'custom' and 'uuid' properties.
request.includeFields = PNChannelMemberCustomField | PNChannelMemberUUIDField | PNChannelMembersTotalCountField;
request.limit = 40;
[self.client setChannelMembersWithRequest:request completion:^(PNManageChannelMembersStatus *status) {
if (!status.isError) {
/**
* Channel's members successfully set.
* Result object has following information:
* result.data.members - list of existing channel's members,
* result.data.next - cursor bookmark for fetching the next page,
* result.data.prev - cursor bookmark for fetching the previous page,
* result.data.totalCount - total number of channel's members.
*/
} else {
/**
* Handle channel's members set error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
}];
Response
Response objects which is returned by client when set members
Object API is used:
@interface PNManageChannelMembersData : PNServiceData
// List of existing members.
@property (nonatomic, readonly, strong) NSArray<PNChannelMember *> *members;
// Cursor bookmark for fetching the next page.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Cursor bookmark for fetching the previous page.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of existing objects.
*
* Value will be 0 in case if PNChannelMembersTotalCountField not added to 'includeFields'
* of PNSetChannelMembersRequest / PNRemoveChannelMembersRequest /
* PNManageChannelMembersRequest or PNFetchChannelMembersRequest.
*/
@property (nonatomic, readonly, assign) NSUInteger totalCount;
@end
@interface PNManageChannelMembersStatus : PNAcknowledgmentStatus
// Members set / remove / manage request processed information.
@property (nonatomic, readonly, strong) PNManageChannelMembersData *data;
@end
Set Channel Members (Builder Pattern)
Method(s)
objects().setChannelMembers(NSString *).uuids(NSArray<NSDictionary *> *).includeFields(PNChannelMemberFields).includeCount(BOOL).filter(NSString *).sort(NSArray<NSString *> *).limit(NSUInteger).start(NSString *).end(NSString *).performWithCompletion(nullable PNManageChannelMembersCompletionBlock)
Parameter Type Required Description channel
NSString Yes Name of channel from which members should be set. uuids
NSArray No List of UUIDs
for whichmetadata
associated with each of them in context ofchannel
should be set. Each entry is dictionary withUUID
andoptional
custom
fields.custom
should be dictionary with simple objects:NSString
andNSNumber
.includeFields
PNChannelMemberFields No PNChannelMemberCustomField
- include field with additional information frommetadata
which has been associated withUUID
duringchannel member set
requests.PNChannelMemberUUIDField
- includeUUID's metadata
into response (not only identifier).PNChannelMemberUUIDCustomField
- includeUUID's
additional information which has been used duringUUID metadata set
requests.
includeCount
BOOL No Whether total count of objects should be included in response or not. Default: YES
filter
NSString No Expression to filter out results basing on specified criteria. Only objects whose properties satisfy the given expression are returned. For more details on the supported grammar, check this sort
NSArray No List of criteria (name of field) which should be used for sorting in ascending order. To change sorting order, append :asc
(ascending used by default) or:desc
(descending) to field name.limit
NSUInteger No Maximum number of objects per fetched page. Default: 100
(which is also maximum value)start
NSString No Cursor value to navigate to next fetched result page. end
NSString No Cursor value to navigate to previous fetched result page. Will be ignored if you also supply the start
parameter.block
PNManageChannelMembersCompletionBlock No Set channel's members
list request completionblock
.
Note
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
NSArray<NSDictionary *> *uuids = @[
@{ @"uuid": @"uuid2", @"custom": @{ @"role": @"moderator" } }
];
self.client.objects().setChannelMembers(@"channel")
.uuids(uuids)
.includeCount(YES)
.limit(40)
.includeFields(PNChannelMemberCustomField | PNChannelMemberUserField)
.performWithCompletion(^(PNManageChannelMembersStatus *status) {
if (!status.isError) {
/**
* Channel's members successfully set.
* Result object has following information:
* result.data.members - list of existing channel's members,
* result.data.next - cursor bookmark for fetching the next page,
* result.data.prev - cursor bookmark for fetching the previous page,
* result.data.totalCount - total number of channel's members.
*/
} else {
/**
* Handle channel's members set error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
});
Response
Response objects which is returned by client when set members
Object API is used:
@interface PNManageChannelMembersData : PNServiceData
// List of existing members.
@property (nonatomic, readonly, strong) NSArray<PNChannelMember *> *members;
// Cursor bookmark for fetching the next page.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Cursor bookmark for fetching the previous page.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of existing objects.
*
* Value will be 0 in case if PNChannelMembersTotalCountField not added to 'includeFields'
* of PNSetChannelMembersRequest / PNRemoveChannelMembersRequest /
* PNManageChannelMembersRequest or PNFetchChannelMembersRequest.
*/
@property (nonatomic, readonly, assign) NSUInteger totalCount;
@end
@interface PNManageChannelMembersStatus : PNAcknowledgmentStatus
// Members set / remove / manage request processed information.
@property (nonatomic, readonly, strong) PNManageChannelMembersData *data;
@end
Remove Channel Members
Description
Remove members from a Channel.
Method(s)
To Remove Channel Members
you can use the following method(s) in the Cocoa SDK:
- (void)removeChannelMembersWithRequest:(PNRemoveChannelMembersRequest *)request completion:(nullable PNManageChannelMembersCompletionBlock)block
Parameter Type Required Description request
PNRemoveChannelMembersRequest Yes Remove channel's members
request with information which should be used to removeUUID
members.block
PNManageChannelMembersCompletionBlock No Remove channel's members
request completionblock
.
PNRemoveChannelMembersRequest
Parameter | Type | Required | Description |
---|---|---|---|
sort | NSArray<NSString *> | No | List of criteria (name of field) which should be used for sorting in ascending order. Use asc or desc to specify sort direction. |
includeFields | PNChannelMemberFields | No | Bitfield set to fields which should be returned with response. Supported fields:
PNChannelMembersTotalCountField ) can be reset by setting 0. |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check this |
start | NSString | No | Previously-returned cursor bookmark for fetching the next page. |
end | NSString | No | Previously-returned cursor bookmark for fetching the previous page. Ignored if you also supply the start parameter. |
limit | NSUInteger | No | Number of objects to return in response. Will be set to 100 (which is also maximum value) if not specified. |
Basic Usage
NSArray<NSString *> *uuids = @[@"uuid3", @"uuid4"];
PNRemoveChannelMembersRequest *request = [PNRemoveChannelMembersRequest requestWithChannel:@"channel"
uuids:uuids];
// Add this request option, if returned member models should have value which has been set to
// 'custom' and 'uuid' properties.
request.includeFields = PNChannelMemberCustomField | PNChannelMemberUUIDField | PNChannelMembersTotalCountField;
request.limit = 40;
[self.client removeChannelMembersWithRequest:request completion:^(PNManageChannelMembersStatus *status) {
if (!status.isError) {
/**
* Channel's members successfully removed.
* Result object has following information:
* result.data.members - list of channel's existing members,
* result.data.next - cursor bookmark for fetching the next page,
* result.data.prev - cursor bookmark for fetching the previous page,
* result.data.totalCount - total number of channel's members.
*/
} else {
/**
* Handle channel's members remove error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
}];
Response
Response objects which is returned by client when remove members
Object API is used:
@interface PNManageChannelMembersData : PNServiceData
// List of existing members.
@property (nonatomic, readonly, strong) NSArray<PNChannelMember *> *members;
// Cursor bookmark for fetching the next page.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Cursor bookmark for fetching the previous page.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of existing objects.
*
* Value will be 0 in case if PNChannelMembersTotalCountField not added to 'includeFields'
* of PNSetChannelMembersRequest / PNRemoveChannelMembersRequest /
* PNManageChannelMembersRequest or PNFetchChannelMembersRequest.
*/
@property (nonatomic, readonly, assign) NSUInteger totalCount;
@end
@interface PNManageChannelMembersStatus : PNAcknowledgmentStatus
// Members set / remove / manage request processed information.
@property (nonatomic, readonly, strong) PNManageChannelMembersData *data;
@end
Remove Channel Members (Builder Pattern)
Method(s)
objects().removeChannelMembers(NSString *).uuids(NSArray<NSString *> *).includeFields(PNChannelMemberFields).includeCount(BOOL).filter(NSString *).sort(NSArray<NSString *> *).limit(NSUInteger).start(NSString *).end(NSString *).performWithCompletion(nullable PNManageChannelMembersCompletionBlock)
Parameter Type Required Description channel
NSString Yes Name of channel from which members should be removed. uuids
NSArray No List of UUIDs
which should be removed fromchannel's
list.includeFields
PNChannelMemberFields No PNChannelMemberCustomField
- include field with additional information frommetadata
which has been associated withUUID
duringchannel member add
requests.PNChannelMemberUUIDField
- includeUUID's metadata
into response (not only identifier).PNChannelMemberUUIDCustomField
- includeUUID's
additional information which has been used duringUUID metadata set
requests.
includeCount
BOOL No Whether total count of members
should be included in response or not. Default:YES
filter
NSString No Expression to filter out results basing on specified criteria. For more details on the supported grammar, check this sort
NSArray No List of criteria (name of field) which should be used for sorting in ascending order. To change sorting order, append :asc
(ascending used by default) or:desc
(descending) to field name.limit
NSUInteger No Maximum number of objects per fetched page. Default: 100
(which is also maximum value)start
NSString No Cursor value to navigate to next fetched result page. end
NSString No Cursor value to navigate to previous fetched result page. Will be ignored if you also supply the start
parameter.block
PNManageChannelMembersCompletionBlock No Remove channel's members
request completionblock
.
Note
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
self.client.objects().removeChannelMembers(@"channel")
.uuids(@[@"uuid3", @"uuid4"])
.includeCount(YES)
.limit(40)
.includeFields(PNChannelMemberCustomField | PNChannelMemberUserField)
.performWithCompletion(^(PNManageChannelMembersStatus *status) {
if (!status.isError) {
/**
* Channel's members successfully removed.
* Result object has following information:
* result.data.members - list of channel's existing members,
* result.data.next - cursor bookmark for fetching the next page,
* result.data.prev - cursor bookmark for fetching the previous page,
* result.data.totalCount - total number of channel's members.
*/
} else {
/**
* Handle channel's members remove error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
});
Response
Response objects which is returned by client when remove members
Object API is used:
@interface PNManageChannelMembersData : PNServiceData
// List of existing members.
@property (nonatomic, readonly, strong) NSArray<PNChannelMember *> *members;
// Cursor bookmark for fetching the next page.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Cursor bookmark for fetching the previous page.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of existing objects.
*
* Value will be 0 in case if PNChannelMembersTotalCountField not added to 'includeFields'
* of PNSetChannelMembersRequest / PNRemoveChannelMembersRequest /
* PNManageChannelMembersRequest or PNFetchChannelMembersRequest.
*/
@property (nonatomic, readonly, assign) NSUInteger totalCount;
@end
@interface PNManageChannelMembersStatus : PNAcknowledgmentStatus
// Members set / remove / manage request processed information.
@property (nonatomic, readonly, strong) PNManageChannelMembersData *data;
@end
Manage Channel Members
Description
The method Set and Remove channel memberships for a user.
Method(s)
To Manage Channel Members
you can use the following method(s) in the Cocoa SDK:
- (void)manageChannelMembersWithRequest:(PNManageChannelMembersRequest *)request completion:(nullable PNManageChannelMembersCompletionBlock)block
Parameter Type Required Description request
PNManageChannelMembersRequest Yes Manage channel's members
list request with information what modifications tochannel's
members list should be done (set
/remove
UUID
).block
PNManageChannelMembersCompletionBlock No Manage channel's members
list request completionblock
.
PNManageChannelMembersRequest
Parameter | Type | Required | Description |
---|---|---|---|
setMembers | NSArray<NSDictionary *> | No | List of UUIDs which should be added to channel's members list. Each entry is dictionary with uuid and optional custom fields. custom should be dictionary with simple objects: NSString and NSNumber. |
removeMembers | NSArray<NSString *> | No | BList of UUIDs which should be removed from channel's list. |
sort | NSArray<NSString *> | No | List of criteria (name of field) which should be used for sorting in ascending order. To change sorting order, append :asc (ascending used by default) or :desc (descending) to field name. |
includeFields | PNChannelMemberFields | No | Bitfield set to fields which should be returned with response. Supported fields:
PNChannelMembersTotalCountField ) can be reset by setting 0. |
filter | NSString | No | Expression to filter out results basing on specified criteria. For more details on the supported grammar, check this |
start | NSString | No | Previously-returned cursor bookmark for fetching the next page. |
end | NSString | No | Previously-returned cursor bookmark for fetching the previous page. Ignored if you also supply the start parameter. |
limit | NSUInteger | No | Number of objects to return in response. Will be set to 100 (which is also maximum value) if not specified. |
Basic Usage
PNManageChannelMembersRequest *request = [PNManageChannelMembersRequest requestWithChannel:@"channel"];
request.setMembers = @[
@{ @"uuid": @"uuid2", @"custom": @{ @"role": @"moderator" } }
];
request.removeMembers = @[@"uuid3", @"uuid4"];
// Add this request option, if returned member models should have value which has been set to
// 'custom' and 'uuid' properties.
request.includeFields = PNChannelMemberCustomField | PNChannelMemberUUIDField | PNChannelMembersTotalCountField;
request.limit = 40;
[self.client manageChannelMembersWithRequest:request completion:^(PNManageChannelMembersStatus *status) {
if (!status.isError) {
/**
* Channel's members successfully changed.
* Result object has following information:
* result.data.members - list of existing channel's members,
* result.data.next - cursor bookmark for fetching the next page,
* result.data.prev - cursor bookmark for fetching the previous page,
* result.data.totalCount - total number of channel's members.
*/
} else {
/**
* Handle channel's members manage error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
}];
Response
Response objects which is returned by client when manage members
Object API is used:
@interface PNManageChannelMembersData : PNServiceData
// List of existing members.
@property (nonatomic, readonly, strong) NSArray<PNChannelMember *> *members;
// Cursor bookmark for fetching the next page.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Cursor bookmark for fetching the previous page.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of existing objects.
*
* Value will be 0 in case if PNChannelMembersTotalCountField not added to 'includeFields'
* of PNSetChannelMembersRequest / PNRemoveChannelMembersRequest /
* PNManageChannelMembersRequest or PNFetchChannelMembersRequest.
*/
@property (nonatomic, readonly, assign) NSUInteger totalCount;
@end
@interface PNManageChannelMembersStatus : PNAcknowledgmentStatus
// Members set / remove / manage request processed information.
@property (nonatomic, readonly, strong) PNManageChannelMembersData *data;
@end
Manage Channel Members (Builder Pattern)
Method(s)
objects().manageChannelMembers(NSString *).set(NSArray<NSDictionary *> *).remove(NSArray<NSString *> *).includeFields(PNChannelMemberFields).includeCount(BOOL).filter(NSString *).sort(NSArray<NSString *> *).limit(NSUInteger).start(NSString *).end(NSString *).performWithCompletion(nullable PNManageChannelMembersCompletionBlock)
Parameter Type Required Description channel
NSString Yes Name of channel from which members should be managed. set
NSArray No List of UUIDs
which should be added tochannel's
members list. Each entry is dictionary withUUID
andoptional
custom
fields.custom
should be dictionary with simple objects:NSString
andNSNumber
.remove
NSArray No List of UUIDs
which should be removed fromchannel's
list.includeFields
PNChannelMemberFields No PNChannelMemberCustomField
- include field with additional information frommetadata
which has been associated withUUID
duringchannel member add
requests.PNChannelMemberUUIDField
- includeUUID's metadata
into response (not only identifier).PNChannelMemberUUIDCustomField
- includeUUID's
additional information which has been used duringUUID metadata set
requests.
includeCount
BOOL No Whether total count of objects should be included in response or not. Default: YES
filter
NSString No Expression to filter out results basing on specified criteria. For more details on the supported grammar, check this sort
NSArray No List of criteria (name of field) which should be used for sorting in ascending order. To change sorting order, append :asc
(ascending used by default) or:desc
(descending) to field name.limit
NSUInteger No Maximum number of objects per fetched page. Default: 100
(which is also maximum value)start
NSString No Cursor value to navigate to next fetched result page. end
NSString No Cursor value to navigate to previous fetched result page. Will be ignored if you also supply the start
parameter.block
PNManageChannelMembersCompletionBlock No Set channel's members
list request completionblock
.
Note
This method uses the builder pattern, you can remove the arguments which are optional.
Basic Usage
NSArray<NSDictionary *> *setMembers = @[
@{ @"uuid": @"uuid2", @"custom": @{ @"role": @"moderator" } }
];
NSArray<NSDictionary *> *removeMembers = @[@"uuid3", @"uuid4"];
self.client.objects().manageChannelMembers(@"channel")
.set(setMembers)
.remove(removeMembers)
.includeCount(YES)
.limit(40)
.includeFields(PNChannelMemberCustomField | PNChannelMemberUUIDField)
.performWithCompletion(^(PNManageChannelMembersStatus *status) {
if (!status.isError) {
/**
* Channel's members successfully changed.
* Result object has following information:
* result.data.members - list of existing channel's members,
* result.data.next - cursor bookmark for fetching the next page,
* result.data.prev - cursor bookmark for fetching the previous page,
* result.data.totalCount - total number of channel's members.
*/
} else {
/**
* Handle channel's members manage error. Check 'category' property to find out possible
* issue because of which request did fail.
*
* Request can be resent using: [status retry]
*/
}
});
Response
Response objects which is returned by client when manage members
Object API is used:
@interface PNManageChannelMembersData : PNServiceData
// List of existing members.
@property (nonatomic, readonly, strong) NSArray<PNChannelMember *> *members;
// Cursor bookmark for fetching the next page.
@property (nonatomic, nullable, readonly, strong) NSString *next;
// Cursor bookmark for fetching the previous page.
@property (nonatomic, nullable, readonly, strong) NSString *prev;
/**
* Total number of existing objects.
*
* Value will be 0 in case if PNChannelMembersTotalCountField not added to 'includeFields'
* of PNSetChannelMembersRequest / PNRemoveChannelMembersRequest /
* PNManageChannelMembersRequest or PNFetchChannelMembersRequest.
*/
@property (nonatomic, readonly, assign) NSUInteger totalCount;
@end
@interface PNManageChannelMembersStatus : PNAcknowledgmentStatus
// Members set / remove / manage request processed information.
@property (nonatomic, readonly, strong) PNManageChannelMembersData *data;
@end
Objects Filtering Language Definition
The filtering language for Objects is similar to the stream filtering language
Note the following:
Date/time properties, such as
updated
, must be compared to valid date/time strings formatted according to ISO 8601.The LIKE operator supports wildcards denoted by the
*
character. A wildcard matches any sequence of arbitrary Unicode characters, including the empty sequence. The literal asterisk is matched when escaped using the backslash (\
) character.Values used with LIKE must be properly encoded just like any other string value. Thus, in order to escape an asterisk, the raw value must contain
\\*
.The entire expression must be properly URL-encoded when used in the query string.
Custom property filtering
You can't filter by custom properties.
<expression> ::= <and_expression> ( "||" <and_expression> )*
<and_expression> ::= <binary_condition> ( "&&" <binary_condition> )*
<binary_condition> ::= "!" <binary_condition> | "(" <expression> ")" | <relational_condition>
<relational_condition> ::= <property_path> <relational_operator> <value>
<property_path> ::= <property_name> ( "." <property_name> )*
<property_name> ::= <identifier> | "[" <string> "]"
<value> ::= <string> | <number> | "true" | "false" | "null"
Tokens
<identifier> ::= <letter> | "$" | "_" ( <letter> | "$" | "_" | <digit> )*
<relational_operator> ::= "==" | "!=" | "<=" | ">=" | "<" | ">" | "LIKE"
<string> ::= <double_quote> ( "\" <double_quote> | "\" <special_char>
| "\" "u" <hex_digit> <hex_digit> <hex_digit> <hex_digit>
| <unicode_char> - <double_quote> - "\" )* <double_quote>
| "'" ( "\" "'" | "\" <special_char>
| "\" "u" <hex_digit> <hex_digit> <hex_digit> <hex_digit>
| <unicode_char> - "'" - "\" )* "'"
<number> ::= ( "+" | "-" )? ( <digit> )* ( "." )? <digit> ( <digit> )*
( "e" | "E" ( "+" | "-" )? <digit> ( <digit> )* )?
<letter> ::= Unicode Letter (category; any kind of letter from any language)
<digit> ::= "0" .. "9"
<hex_digit> ::= <digit> | "A" .. "F"
<double_quote> ::= the " character
<unicode_char> ::= any character in the Unicode range from U+0020 to U+10FFFF inclusive
<special_char> ::= "\" | "/" | "b" | "f" | "n" | "r" | "t"
Sample object filtering operations
The following date/time comparison returns results that were modified on or after August 31st, 2019 (UTC):
updated >= "2019-08-31T00:00:00Z"
The following wildcard expression returns results whose name starts with the letter X:
name LIKE 'X*'
The following escaped wildcard expression returns results whose name contains an asterisk:
name LIKE '*\\**'