FRAPushMechanism.h revision 721bb987c406979bcfe705fa1ca8d54497d40fcb
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell * The contents of this file are subject to the terms of the Common Development and
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell * Distribution License (the License). You may not use this file except in compliance with the
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell * specific language governing permission and limitations under the License.
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell * When distributing Covered Software, include this CDDL Header Notice in each file and include
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell * Header, with the fields enclosed by brackets [] replaced by your own identifying
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell * information: "Portions copyright [year] [name of copyright owner]".
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell * Copyright 2016 ForgeRock AS.
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell * An authentication mechanism capable of authenticating by responding to a push notification.
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell * The version number of this mechanism.
6c1420dd55f69d09f39dd213ee6c97ba901b8d92Craig McDonnell@property (nonatomic, readonly) NSInteger version;
721bb987c406979bcfe705fa1ca8d54497d40fcbRobert Wapshott * Secret key for Push Notifications
721bb987c406979bcfe705fa1ca8d54497d40fcbRobert Wapshott@property (nonatomic, readonly) NSString *secret;
721bb987c406979bcfe705fa1ca8d54497d40fcbRobert Wapshott * Authentication Endpoint to contact for Push Notifications
721bb987c406979bcfe705fa1ca8d54497d40fcbRobert Wapshott@property (nonatomic, readonly) NSString *authEndpoint;
721bb987c406979bcfe705fa1ca8d54497d40fcbRobert Wapshott * The type of this mechanism. E.g. push
721bb987c406979bcfe705fa1ca8d54497d40fcbRobert Wapshott@property (nonatomic, readonly) NSString* type;
721bb987c406979bcfe705fa1ca8d54497d40fcbRobert Wapshott * The Device ID that this device is registered under.
721bb987c406979bcfe705fa1ca8d54497d40fcbRobert Wapshott@property (nonatomic, readonly) NSString* mechanismUID;
415243fbc81341293a852ff6aa14e9608d08685cCraig McDonnell * Init Push Mechanism.
415243fbc81341293a852ff6aa14e9608d08685cCraig McDonnell * @param database The database to which this mechanism can be persisted.
415243fbc81341293a852ff6aa14e9608d08685cCraig McDonnell * @return The initialized mechanism or nil if initialization failed.
415243fbc81341293a852ff6aa14e9608d08685cCraig McDonnell- (instancetype)initWithDatabase:(FRAIdentityDatabase *)database;
721bb987c406979bcfe705fa1ca8d54497d40fcbRobert Wapshott * Create an instance of PushMechanism
721bb987c406979bcfe705fa1ca8d54497d40fcbRobert Wapshott * @param database Required to allow mechnaism to persist changes
721bb987c406979bcfe705fa1ca8d54497d40fcbRobert Wapshott * @param authEndPoint The authentication endpoint URI used for signalling to the server
721bb987c406979bcfe705fa1ca8d54497d40fcbRobert Wapshott * @param secret Shared secret key required for authentication
9ebd9a731316dfd624ce3bcc4ea6519d10899936Ken Stubbings * @return The initialized mechanism or nil if initialization failed.
721bb987c406979bcfe705fa1ca8d54497d40fcbRobert Wapshott- (instancetype)initWithDatabase:(FRAIdentityDatabase *)database authEndpoint:(NSString *)authEndPoint secret:(NSString *)secret;
415243fbc81341293a852ff6aa14e9608d08685cCraig McDonnell * Allocate and init Push Mechanism.
415243fbc81341293a852ff6aa14e9608d08685cCraig McDonnell * @param database The database to which this mechanism can be persisted.
415243fbc81341293a852ff6aa14e9608d08685cCraig McDonnell * @return The initialized mechanism or nil if initialization failed.
415243fbc81341293a852ff6aa14e9608d08685cCraig McDonnell+ (instancetype)pushMechanismWithDatabase:(FRAIdentityDatabase *)database;
9ebd9a731316dfd624ce3bcc4ea6519d10899936Ken Stubbings * Allocate and init Push Mechanism.
9ebd9a731316dfd624ce3bcc4ea6519d10899936Ken Stubbings * @param database The database to which this mechanism can be persisted.
9ebd9a731316dfd624ce3bcc4ea6519d10899936Ken Stubbings * @return The initialized mechanism or nil if initialization failed.
721bb987c406979bcfe705fa1ca8d54497d40fcbRobert Wapshott+ (instancetype)pushMechanismWithDatabase:(FRAIdentityDatabase *)database authEndpoint:(NSString *)authEndPoint secret:(NSString *)secret;
721bb987c406979bcfe705fa1ca8d54497d40fcbRobert Wapshott * Allocate and init Push Mechanism with version information included.
721bb987c406979bcfe705fa1ca8d54497d40fcbRobert Wapshott * @param database The database to which this mechanism can be persisted.
721bb987c406979bcfe705fa1ca8d54497d40fcbRobert Wapshott * @return The initialized mechanism or nil if initialization failed.