aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firebase/Auth/Source/RPCs/FIRGetAccountInfoResponse.h
blob: 009f3c1cf4bfb3e11ba1877911bb1b0e83f7ec53 (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
/*
 * 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 "FIRAuthRPCResponse.h"

NS_ASSUME_NONNULL_BEGIN

/** @class FIRGetAccountInfoResponseProviderUserInfo
    @brief Represents the provider user info part of the response from the getAccountInfo endpoint.
    @see https://developers.google.com/identity/toolkit/web/reference/relyingparty/getAccountInfo
 */
@interface FIRGetAccountInfoResponseProviderUserInfo : NSObject

/** @property providerID
    @brief The ID of the identity provider.
 */
@property(nonatomic, strong, readonly, nullable) NSString *providerID;

/** @property displayName
    @brief The user's display name at the identity provider.
 */
@property(nonatomic, strong, readonly, nullable) NSString *displayName;

/** @property photoURL
    @brief The user's photo URL at the identity provider.
 */
@property(nonatomic, strong, readonly, nullable) NSURL *photoURL;

/** @property federatedID
    @brief The user's identifier at the identity provider.
 */
@property(nonatomic, strong, readonly, nullable) NSString *federatedID;

/** @property email
    @brief The user's email at the identity provider.
 */
@property(nonatomic, strong, readonly, nullable) NSString *email;

/** @property phoneNumber
    @brief A phone number associated with the user.
 */
@property(nonatomic, readonly, nullable) NSString *phoneNumber;

/** @fn init
    @brief Please use initWithDictionary:
 */
- (instancetype)init NS_UNAVAILABLE;

/** @fn initWithAPIKey:
    @brief Designated initializer.
    @param dictionary The provider user info data from endpoint.
 */
- (instancetype)initWithDictionary:(NSDictionary *)dictionary NS_DESIGNATED_INITIALIZER;

@end

/** @class FIRGetAccountInfoResponseUser
    @brief Represents the firebase user info part of the response from the getAccountInfo endpoint.
    @see https://developers.google.com/identity/toolkit/web/reference/relyingparty/getAccountInfo
 */
@interface FIRGetAccountInfoResponseUser : NSObject

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

/** @property email
    @brief The email or the user.
 */
@property(nonatomic, strong, readonly, nullable) NSString *email;

/** @property emailVerified
    @brief Whether the email has been verified.
 */
@property(nonatomic, assign, readonly) BOOL emailVerified;

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

/** @property photoURL
    @brief The user's photo URL.
 */
@property(nonatomic, strong, readonly, nullable) NSURL *photoURL;

/** @property providerUserInfo
    @brief The user's profiles at the associated identity providers.
 */
@property(nonatomic, strong, readonly, nullable)
    NSArray<FIRGetAccountInfoResponseProviderUserInfo *> *providerUserInfo;

/** @property passwordHash
    @brief Information about user's password.
    @remarks This is not necessarily the hash of user's actual password.
 */
@property(nonatomic, strong, readonly, nullable) NSString *passwordHash;

/** @property phoneNumber
    @brief A phone number associated with the user.
 */
@property(nonatomic, readonly, nullable) NSString *phoneNumber;

/** @fn init
    @brief Please use initWithDictionary:
 */
- (instancetype)init NS_UNAVAILABLE;

/** @fn initWithAPIKey:
    @brief Designated initializer.
    @param dictionary The provider user info data from endpoint.
 */
- (instancetype)initWithDictionary:(NSDictionary *)dictionary NS_DESIGNATED_INITIALIZER;

@end

/** @class FIRGetAccountInfoResponse
    @brief Represents the response from the setAccountInfo endpoint.
    @see https://developers.google.com/identity/toolkit/web/reference/relyingparty/getAccountInfo
 */
@interface FIRGetAccountInfoResponse : NSObject <FIRAuthRPCResponse>

/** @property providerUserInfo
    @brief The requested users' profiles.
 */
@property(nonatomic, strong, readonly, nullable) NSArray<FIRGetAccountInfoResponseUser *> *users;

@end

NS_ASSUME_NONNULL_END