aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firebase/Auth/Source/RPCs/FIRGetOOBConfirmationCodeRequest.h
blob: 751cfe79ca3e3f4b10b4c917680d44ba76e78de8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
/*
 * Copyright 2017 Google
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#import <Foundation/Foundation.h>

#import "FIRAuthRPCRequest.h"
#import "FIRIdentityToolkitRequest.h"

@class FIRActionCodeSettings;

NS_ASSUME_NONNULL_BEGIN

/** @enum FIRGetOOBConfirmationCodeRequestType
    @brief Types of OOB Confirmation Code requests.
 */
typedef NS_ENUM(NSInteger, FIRGetOOBConfirmationCodeRequestType) {
  /** @var FIRGetOOBConfirmationCodeRequestTypePasswordReset
      @brief Requests a password reset code.
   */
  FIRGetOOBConfirmationCodeRequestTypePasswordReset,

  /** @var FIRGetOOBConfirmationCodeRequestTypeVerifyEmail
      @brief Requests an email verification code.
   */
  FIRGetOOBConfirmationCodeRequestTypeVerifyEmail,

  /** @var FIRGetOOBConfirmationCodeRequestTypeEmailLink
      @brief Requests an email sign-in link.
   */
  FIRGetOOBConfirmationCodeRequestTypeEmailLink,
};

/** @enum FIRGetOOBConfirmationCodeRequest
    @brief Represents the parameters for the getOOBConfirmationCode endpoint.
 */
@interface FIRGetOOBConfirmationCodeRequest : FIRIdentityToolkitRequest <FIRAuthRPCRequest>

/** @property requestType
    @brief The types of OOB Confirmation Code to request.
 */
@property(nonatomic, assign, readonly) FIRGetOOBConfirmationCodeRequestType requestType;

/** @property email
    @brief The email of the user.
    @remarks For password reset.
 */
@property(nonatomic, copy, nullable, readonly) NSString *email;

/** @property accessToken
    @brief The STS Access Token of the authenticated user.
    @remarks For email change.
 */
@property(nonatomic, copy, nullable, readonly) NSString *accessToken;

/** @property continueURL
    @brief This URL represents the state/Continue URL in the form of a universal link.
 */
@property(nonatomic, copy, nullable, readonly) NSString *continueURL;

/** @property iOSBundleID
    @brief The iOS bundle Identifier, if available.
 */
@property(nonatomic, copy, nullable, readonly) NSString *iOSBundleID;

/** @property androidPackageName
    @brief The Android package name, if available.
 */
@property(nonatomic, copy, nullable, readonly) NSString *androidPackageName;

/** @property androidMinimumVersion
    @brief The minimum Android version supported, if available.
 */
@property(nonatomic, copy, nullable, readonly) NSString *androidMinimumVersion;

/** @property androidInstallIfNotAvailable
    @brief Indicates whether or not the Android app should be installed if not already available.
 */
@property(nonatomic, assign, readonly) BOOL androidInstallApp;

/** @property handleCodeInApp
    @brief Indicates whether the action code link will open the app directly or after being
        redirected from a Firebase owned web widget.
 */
@property(assign, nonatomic) BOOL handleCodeInApp;

/** @fn passwordResetRequestWithEmail:actionCodeSettings:requestConfiguration:
    @brief Creates a password reset request.
    @param email The user's email address.
    @param actionCodeSettings An object of FIRActionCodeSettings which specifies action code
        settings to be applied to the password reset request.
    @param requestConfiguration An object containing configurations to be added to the request.
    @return A password reset request.
 */
+ (nullable FIRGetOOBConfirmationCodeRequest *)
    passwordResetRequestWithEmail:(NSString *)email
               actionCodeSettings:(nullable FIRActionCodeSettings *)actionCodeSettings
             requestConfiguration:(FIRAuthRequestConfiguration *)requestConfiguration;

/** @fn verifyEmailRequestWithAccessToken:actionCodeSettings:requestConfiguration:
    @brief Creates a password reset request.
    @param accessToken The user's STS Access Token.
    @param actionCodeSettings An object of FIRActionCodeSettings which specifies action code
        settings to be applied to the email verification request.
    @param requestConfiguration An object containing configurations to be added to the request.
    @return A password reset request.
 */
+ (nullable FIRGetOOBConfirmationCodeRequest *)
    verifyEmailRequestWithAccessToken:(NSString *)accessToken
                   actionCodeSettings:(nullable FIRActionCodeSettings *)actionCodeSettings
                 requestConfiguration:(FIRAuthRequestConfiguration *)requestConfiguration;

/** @fn signInWithEmailLinkRequest:actionCodeSettings:requestConfiguration:
    @brief Creates a sign-in with email link.
    @param email The user's email address.
    @param actionCodeSettings An object of FIRActionCodeSettings which specifies action code
        settings to be applied to the email sign-in link.
    @param requestConfiguration An object containing configurations to be added to the request.
    @return An email sign-in link request.
 */
+ (nullable FIRGetOOBConfirmationCodeRequest *)
    signInWithEmailLinkRequest:(NSString *)email
            actionCodeSettings:(nullable FIRActionCodeSettings *)actionCodeSettings
          requestConfiguration:(FIRAuthRequestConfiguration *)requestConfiguration;

/** @fn init
    @brief Please use a factory method.
 */
- (nullable instancetype)initWithEndpoint:(NSString *)endpoint
                     requestConfiguration:(FIRAuthRequestConfiguration *)requestConfiguration
                         NS_UNAVAILABLE;

@end

NS_ASSUME_NONNULL_END