aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firebase/Auth/Source/RPCs/FIRSetAccountInfoRequest.h
blob: 4816474ad1b7604c1b939d20f72888b43476bbe1 (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
148
149
/*
 * 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 FIRGetAccountInfoResponse;

NS_ASSUME_NONNULL_BEGIN

/** @var FIRSetAccountInfoUserAttributeEmail
    @brief Constant for email attribute used in "deleteAttributes".
 */
extern NSString *const FIRSetAccountInfoUserAttributeEmail;

/** @var FIRSetAccountInfoUserAttributeDisplayName
    @brief Constant for displayName attribute used in "deleteAttributes".
 */
extern NSString *const FIRSetAccountInfoUserAttributeDisplayName;

/** @var FIRSetAccountInfoUserAttributeProvider
    @brief Constant for provider attribute used in "deleteAttributes".
 */
extern NSString *const FIRSetAccountInfoUserAttributeProvider;

/** @var FIRSetAccountInfoUserAttributePhotoURL
    @brief Constant for photoURL attribute used in "deleteAttributes".
 */
extern NSString *const FIRSetAccountInfoUserAttributePhotoURL;

/** @var FIRSetAccountInfoUserAttributePassword
    @brief Constant for password attribute used in "deleteAttributes".
 */
extern NSString *const FIRSetAccountInfoUserAttributePassword;

/** @class FIRSetAccountInfoRequest
    @brief Represents the parameters for the setAccountInfo endpoint.
    @see https://developers.google.com/identity/toolkit/web/reference/relyingparty/setAccountInfo
 */
@interface FIRSetAccountInfoRequest : FIRIdentityToolkitRequest <FIRAuthRPCRequest>

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

/** @property displayName
    @brief The name of the user.
 */
@property(nonatomic, copy, nullable) NSString *displayName;

/** @property localID
    @brief The local ID of the user.
 */
@property(nonatomic, copy, nullable) NSString *localID;

/** @property email
    @brief The email of the user.
 */
@property(nonatomic, copy, nullable) NSString *email;

/** @property photoURL
    @brief The photoURL of the user.
 */
@property(nonatomic, copy, nullable) NSURL *photoURL;

/** @property password
    @brief The new password of the user.
 */
@property(nonatomic, copy, nullable) NSString *password;

/** @property providers
    @brief The associated identity providers of the user.
 */
@property(nonatomic, copy, nullable) NSArray<NSString *> *providers;

/** @property OOBCode
    @brief The out-of-band code of the change email request.
 */
@property(nonatomic, copy, nullable) NSString *OOBCode;

/** @property emailVerified
    @brief Whether to mark the email as verified or not.
 */
@property(nonatomic, assign) BOOL emailVerified;

/** @property upgradeToFederatedLogin
    @brief Whether to mark the user to upgrade to federated login.
 */
@property(nonatomic, assign) BOOL upgradeToFederatedLogin;

/** @property captchaChallenge
    @brief The captcha challenge.
 */
@property(nonatomic, copy, nullable) NSString *captchaChallenge;

/** @property captchaResponse
    @brief Response to the captcha.
 */
@property(nonatomic, copy, nullable) NSString *captchaResponse;

/** @property deleteAttributes
    @brief The list of user attributes to delete.
    @remarks Every element of the list must be one of the predefined constant starts with
        "FIRSetAccountInfoUserAttribute".
 */
@property(nonatomic, copy, nullable) NSArray<NSString *> *deleteAttributes;

/** @property deleteProviders
    @brief The list of identity providers to delete.
 */
@property(nonatomic, copy, nullable) NSArray<NSString *> *deleteProviders;

/** @property returnSecureToken
    @brief Whether the response should return access token and refresh token directly.
    @remarks The default value is @c YES .
 */
@property(nonatomic, assign) BOOL returnSecureToken;

/** @fn initWithEndpoint:APIKey:
    @brief Please use initWithAPIKey:
 */
- (nullable instancetype)initWithEndpoint:(NSString *)endpoint
                                   APIKey:(NSString *)APIKey NS_UNAVAILABLE;

/** @fn initWithAPIKey:
    @brief Designated initializer.
    @param APIKey The client's API Key.
 */
- (nullable instancetype)initWithAPIKey:(NSString *)APIKey NS_DESIGNATED_INITIALIZER;

@end

NS_ASSUME_NONNULL_END