diff options
Diffstat (limited to 'StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceID.h')
| -rw-r--r-- | StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceID.h | 273 |
1 files changed, 273 insertions, 0 deletions
diff --git a/StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceID.h b/StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceID.h new file mode 100644 index 00000000..e3fd3c64 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceID.h @@ -0,0 +1,273 @@ +#import <Foundation/Foundation.h> + +@class GGLInstanceIDConfig; + +/** + * @memberof GGLInstanceID + * + * The key for APNS token to be included in the options dictionary when + * registering for GCM (Google Cloud Messaging). The value should be a + * NSData object that represents the APNS token for the app. This + * key is required to get a GCM token. + */ +FOUNDATION_EXPORT NSString *const kGGLInstanceIDRegisterAPNSOption; + +/** + * @memberof GGLInstanceID + * + * The key to specify if the APNS token type is sandbox or production. Set + * to YES if the app was built with Sandbox certificate else NO for production. + * At any point of time InstanceID library will support only one type of token. + */ +FOUNDATION_EXPORT NSString *const kGGLInstanceIDAPNSServerTypeSandboxOption; + +/** + * @memberof GGLInstanceID + * + * The scope to be used when fetching/deleting a token for + * GCM (Google Cloud Messaging). + */ +FOUNDATION_EXPORT NSString *const kGGLInstanceIDScopeGCM; + +/** + * @related GGLInstanceID + * + * The completion handler invoked when the InstanceID token returns. If + * the call fails we return the appropriate `error code` as described below. + * + * @param token The valid token as returned by InstanceID backend. + * + * @param error The error describing why generating a new token + * failed. See the error codes below for a more detailed + * description. + */ +typedef void(^GGLInstanceIDTokenHandler)(NSString *token, NSError *error); + + +/** + * @related GGLInstanceID + * + * The completion handler invoked when the InstanceID `deleteToken` returns. If + * the call fails we return the appropriate `error code` as described below + * + * @param error The error describing why deleting the token failed. + * See the error codes below for a more detailed description. + */ +typedef void(^GGLInstanceIDDeleteTokenHandler)(NSError *error); + +/** + * @related GGLInstanceID + * + * The completion handler invoked when the app identity is created. If the + * identity wasn't created for some reason we return the appropriate error code. + * + * @param identity A valid identity for the app instance, nil if there was an error + * while creating an identity. + * @param error The error if fetching the identity fails else nil. + */ +typedef void(^GGLInstanceIDHandler)(NSString *identity, NSError *error); + +/** + * @related GGLInstanceID + * + * The completion handler invoked when the app identity and all the tokens associated + * with it are deleted. Returns a valid error object in case of failure else nil. + * + * @param error The error if deleting the identity and all the tokens associated with + * it fails else nil. + */ +typedef void(^GGLInstanceIDDeleteHandler)(NSError *error); + +/** + * @enum GGLInstanceIDOperationErrorCode + * Description of error codes + */ +typedef NS_ENUM(NSUInteger, GGLInstanceIDOperationErrorCode) { + // Http related errors. + + /// InvalidRequest -- Some parameters of the request were invalid. + kGGLInstanceIDOperationErrorCodeInvalidRequest = 0, + + /// Auth Error -- GCM couldn't validate request from this client. + kGGLInstanceIDOperationErrorCodeAuthentication = 1, + + /// NoAccess -- InstanceID service cannot be accessed. + kGGLInstanceIDOperationErrorCodeNoAccess = 2, + + /// Timeout -- Request to InstanceID backend timed out. + kGGLInstanceIDOperationErrorCodeTimeout = 3, + + + /// Network -- No network available to reach the servers. + kGGLInstanceIDOperationErrorCodeNetwork = 4, + + /// OperationInProgress -- Another similar operation in progress, + /// bailing this one. + kGGLInstanceIDOperationErrorCodeOperationInProgress = 5, + + /// Unknown error. + kGGLInstanceIDOperationErrorCodeUnknown = 7, + + // InstanceID specific errors + + /* + * Generic errors. + */ + + // Device seems to be missing a valid deviceID. Cannot + // authenticate device requests. + kGGLInstanceIDOperationErrorCodeMissingDeviceID = 501, + + /** + * Token specific errors. + */ + + /// GCM token request is missing APNS token. + kGGLInstanceIDOperationErrorCodeMissingAPNSToken = 1001, + + /// GCM token request is missing server type. + kGGLInstanceIDOperationErrorCodeMissingAPNSServerType = 1002, + + /// Token request has invalid authorizedEntity. + kGGLInstanceIDOperationErrorCodeInvalidAuthorizedEntity = 1003, + + /// Token request has invalid scope. + kGGLInstanceIDOperationErrorCodeInvalidScope = 1004, + + /// Should call `startWithConfig:` before requesting token. + kGGLInstanceIDOperationErrorCodeInvalidStart = 1005, + + /// KeyPair access error. + kGGLInstanceIDOperationErrorCodeInvalidKeyPair = 1006, + + /** + * Identity specific errors. + */ + + /// Missing KeyPair. + kGGLInstanceIDOperationErrorCodeMissingKeyPair = 2001, +}; + +/** + * Instance ID provides a unique identifier for each app instance and a mechanism + * to authenticate and authorize actions (for example, sending a GCM message). + * + * Instance ID is long lived but, may be reset if the device is not used for + * a long time or the Instance ID service detects a problem. + * If Instance ID is reset, the app will be notified with a callback to + * [GGLInstanceIDDelegate onTokenRefresh] + * + * If the Instance ID has become invalid, the app can request a new one and + * send it to the app server. + * To prove ownership of Instance ID and to allow servers to access data or + * services associated with the app, call + * `[GGLInstanceID tokenWithAuthorizedEntity:scope:options:handler]`. + */ +@interface GGLInstanceID : NSObject + +/** + * GGLInstanceID. + * + * @return A shared instance of GGLInstanceID. + */ ++ (instancetype)sharedInstance; + +/** + * Start `GGLInstanceID` with the specified config. + * + * @see GGLInstanceIDConfig + * + * @param config The `GGLInstanceIDConfig` used to build the service. + */ +- (void)startWithConfig:(GGLInstanceIDConfig *)config; + +/** + * Stop any network requests started by the client and release any handlers + * associated with it. + */ +- (void)stopAllRequests; + +#pragma mark - Tokens + +/** + * Returns a token that authorizes an Entity (example: cloud service) to perform + * an action on behalf of the application identified by Instance ID. + * + * This is similar to an OAuth2 token except, it applies to the + * application instance instead of a user. + * + * This is an asynchronous call. If the token fetching fails for some reason + * we invoke the completion callback with nil `token` and the appropriate + * error. + * + * Note, you can only have one `token` or `deleteToken` call for a given + * authorizedEntity and scope at any point of time. Making another such call with the + * same authorizedEntity and scope before the last one finishes will result in an + * error with code `OperationInProgress`. + * + * @see GGLInstanceID deleteTokenWithAuthorizedEntity:scope:handler: + * + * @param authorizedEntity Entity authorized by the token. + * @param scope Action authorized for authorizedEntity. + * @param options The extra options to be sent with your token request. The + * value for the `apns_token` should be the NSData object + * passed to UIApplication's + * `didRegisterForRemoteNotificationsWithDeviceToken` method. + * All other keys and values in the options dict need to be + * instances of NSString or else they will be discarded. Bundle + * keys starting with 'GCM.' and 'GOOGLE.' are reserved. + * @param handler The callback handler which is invoked when the token is + * successfully fetched. In case of success a valid `token` and + * `nil` error are returned. In case of any error the `token` + * is nil and a valid `error` is returned. The valid error + * codes have been documented above. + */ +- (void)tokenWithAuthorizedEntity:(NSString *)authorizedEntity + scope:(NSString *)scope + options:(NSDictionary *)options + handler:(GGLInstanceIDTokenHandler)handler; + +/** + * Revokes access to a scope (action) for an entity previously + * authorized by `[GGLInstanceID tokenWithAuthorizedEntity:scope:options:handler]`. + * + * This is an asynchronous call. Call this on the main thread since InstanceID lib + * is not thread safe. In case token deletion fails for some reason we invoke the + * `handler` callback passed in with the appropriate error code. + * + * Note, you can only have one `token` or `deleteToken` call for a given + * authorizedEntity and scope at a point of time. Making another such call with the + * same authorizedEntity and scope before the last one finishes will result in an error + * with code `OperationInProgress`. + * + * @param authorizedEntity Entity that must no longer have access. + * @param scope Action that entity is no longer authorized to perform. + * @param handler The handler that is invoked once the unsubscribe call ends. + * In case of error an appropriate error object is returned + * else error is nil. + */ +- (void)deleteTokenWithAuthorizedEntity:(NSString *)authorizedEntity + scope:(NSString *)scope + handler:(GGLInstanceIDDeleteTokenHandler)handler; + +#pragma mark - Identity + +/** + * Asynchronously fetch a stable identifier that uniquely identifies the app + * instance. If the identifier has been revoked or has expired, this method will + * return a new identifier. + * + * + * @param handler The handler to invoke once the identifier has been fetched. + * In case of error an appropriate error object is returned else + * a valid identifier is returned and a valid identifier for the + * application instance. + */ +- (void)getIDWithHandler:(GGLInstanceIDHandler)handler; + +/** + * Resets Instance ID and revokes all tokens. + */ +- (void)deleteIDWithHandler:(GGLInstanceIDDeleteHandler)handler; + +@end |
