objc2_authentication_services/generated/
ASAuthorizationProviderExtensionRegistrationHandler.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6use objc2_foundation::*;
7#[cfg(feature = "objc2-security")]
8use objc2_security::*;
9
10use crate::*;
11
12/// [Apple's documentation](https://developer.apple.com/documentation/authenticationservices/asauthorizationproviderextensionauthenticationmethod?language=objc)
13// NS_ENUM
14#[repr(transparent)]
15#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
16pub struct ASAuthorizationProviderExtensionAuthenticationMethod(pub NSInteger);
17impl ASAuthorizationProviderExtensionAuthenticationMethod {
18    #[doc(alias = "ASAuthorizationProviderExtensionAuthenticationMethodPassword")]
19    pub const Password: Self = Self(1);
20    #[doc(alias = "ASAuthorizationProviderExtensionAuthenticationMethodUserSecureEnclaveKey")]
21    pub const UserSecureEnclaveKey: Self = Self(2);
22    #[doc(alias = "ASAuthorizationProviderExtensionAuthenticationMethodSmartCard")]
23    pub const SmartCard: Self = Self(3);
24}
25
26unsafe impl Encode for ASAuthorizationProviderExtensionAuthenticationMethod {
27    const ENCODING: Encoding = NSInteger::ENCODING;
28}
29
30unsafe impl RefEncode for ASAuthorizationProviderExtensionAuthenticationMethod {
31    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
32}
33
34/// [Apple's documentation](https://developer.apple.com/documentation/authenticationservices/asauthorizationproviderextensionrequestoptions?language=objc)
35// NS_OPTIONS
36#[repr(transparent)]
37#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
38pub struct ASAuthorizationProviderExtensionRequestOptions(pub NSUInteger);
39bitflags::bitflags! {
40    impl ASAuthorizationProviderExtensionRequestOptions: NSUInteger {
41        #[doc(alias = "ASAuthorizationProviderExtensionRequestOptionsNone")]
42        const None = 0;
43        #[doc(alias = "ASAuthorizationProviderExtensionRequestOptionsUserInteractionEnabled")]
44        const UserInteractionEnabled = 1<<0;
45        #[doc(alias = "ASAuthorizationProviderExtensionRequestOptionsRegistrationRepair")]
46        const RegistrationRepair = 1<<1;
47        #[doc(alias = "ASAuthorizationProviderExtensionRequestOptionsRegistrationSharedDeviceKeys")]
48        const RegistrationSharedDeviceKeys = 1<<2;
49        #[doc(alias = "ASAuthorizationProviderExtensionRequestOptionsRegistrationDeviceKeyMigration")]
50        const RegistrationDeviceKeyMigration = 1<<3;
51        #[doc(alias = "ASAuthorizationProviderExtensionRequestOptionsStrongerKeyAvailable")]
52        const StrongerKeyAvailable = 1<<4;
53        #[doc(alias = "ASAuthorizationProviderExtensionRequestOptionsUserKeyInvalid")]
54        const UserKeyInvalid = 1<<5;
55        #[doc(alias = "ASAuthorizationProviderExtensionRequestOptionsSetupAssistant")]
56        const SetupAssistant = 1<<6;
57    }
58}
59
60unsafe impl Encode for ASAuthorizationProviderExtensionRequestOptions {
61    const ENCODING: Encoding = NSUInteger::ENCODING;
62}
63
64unsafe impl RefEncode for ASAuthorizationProviderExtensionRequestOptions {
65    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
66}
67
68/// [Apple's documentation](https://developer.apple.com/documentation/authenticationservices/asauthorizationproviderextensionregistrationresult?language=objc)
69// NS_ENUM
70#[repr(transparent)]
71#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
72pub struct ASAuthorizationProviderExtensionRegistrationResult(pub NSInteger);
73impl ASAuthorizationProviderExtensionRegistrationResult {
74    #[doc(alias = "ASAuthorizationProviderExtensionRegistrationResultSuccess")]
75    pub const Success: Self = Self(0);
76    #[doc(alias = "ASAuthorizationProviderExtensionRegistrationResultFailed")]
77    pub const Failed: Self = Self(1);
78    #[doc(alias = "ASAuthorizationProviderExtensionRegistrationResultUserInterfaceRequired")]
79    pub const UserInterfaceRequired: Self = Self(2);
80    #[doc(alias = "ASAuthorizationProviderExtensionRegistrationResultFailedNoRetry")]
81    pub const FailedNoRetry: Self = Self(3);
82}
83
84unsafe impl Encode for ASAuthorizationProviderExtensionRegistrationResult {
85    const ENCODING: Encoding = NSInteger::ENCODING;
86}
87
88unsafe impl RefEncode for ASAuthorizationProviderExtensionRegistrationResult {
89    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
90}
91
92/// [Apple's documentation](https://developer.apple.com/documentation/authenticationservices/asauthorizationproviderextensionsupportedgranttypes?language=objc)
93// NS_OPTIONS
94#[repr(transparent)]
95#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
96pub struct ASAuthorizationProviderExtensionSupportedGrantTypes(pub NSInteger);
97bitflags::bitflags! {
98    impl ASAuthorizationProviderExtensionSupportedGrantTypes: NSInteger {
99        #[doc(alias = "ASAuthorizationProviderExtensionSupportedGrantTypesNone")]
100        const None = 0;
101        #[doc(alias = "ASAuthorizationProviderExtensionSupportedGrantTypesPassword")]
102        const Password = 1<<0;
103        #[doc(alias = "ASAuthorizationProviderExtensionSupportedGrantTypesJWTBearer")]
104        const JWTBearer = 1<<1;
105        #[doc(alias = "ASAuthorizationProviderExtensionSupportedGrantTypesSAML1_1")]
106        const SAML1_1 = 1<<2;
107        #[doc(alias = "ASAuthorizationProviderExtensionSupportedGrantTypesSAML2_0")]
108        const SAML2_0 = 1<<3;
109    }
110}
111
112unsafe impl Encode for ASAuthorizationProviderExtensionSupportedGrantTypes {
113    const ENCODING: Encoding = NSInteger::ENCODING;
114}
115
116unsafe impl RefEncode for ASAuthorizationProviderExtensionSupportedGrantTypes {
117    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
118}
119
120/// [Apple's documentation](https://developer.apple.com/documentation/authenticationservices/asauthorizationproviderextensionplatformssoprotocolversion?language=objc)
121// NS_ENUM
122#[repr(transparent)]
123#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
124pub struct ASAuthorizationProviderExtensionPlatformSSOProtocolVersion(pub NSInteger);
125impl ASAuthorizationProviderExtensionPlatformSSOProtocolVersion {
126    #[doc(alias = "ASAuthorizationProviderExtensionPlatformSSOProtocolVersion1_0")]
127    pub const Version1_0: Self = Self(0);
128    #[doc(alias = "ASAuthorizationProviderExtensionPlatformSSOProtocolVersion2_0")]
129    pub const Version2_0: Self = Self(1);
130}
131
132unsafe impl Encode for ASAuthorizationProviderExtensionPlatformSSOProtocolVersion {
133    const ENCODING: Encoding = NSInteger::ENCODING;
134}
135
136unsafe impl RefEncode for ASAuthorizationProviderExtensionPlatformSSOProtocolVersion {
137    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
138}
139
140extern_protocol!(
141    /// [Apple's documentation](https://developer.apple.com/documentation/authenticationservices/asauthorizationproviderextensionregistrationhandler?language=objc)
142    pub unsafe trait ASAuthorizationProviderExtensionRegistrationHandler:
143        NSObjectProtocol
144    {
145        #[cfg(all(
146            feature = "ASAuthorizationProviderExtensionLoginManager",
147            feature = "block2"
148        ))]
149        /// This initiates device registration process for the SSO extension.
150        ///
151        /// Parameter `loginManager`: The login manager used to interface with Platform SSO.
152        ///
153        /// Parameter `options`: The request options that apply to the request.
154        ///
155        /// Parameter `completion`: The completion to call to continue device registration.
156        #[unsafe(method(beginDeviceRegistrationUsingLoginManager:options:completion:))]
157        #[unsafe(method_family = none)]
158        unsafe fn beginDeviceRegistrationUsingLoginManager_options_completion(
159            &self,
160            login_manager: &ASAuthorizationProviderExtensionLoginManager,
161            options: ASAuthorizationProviderExtensionRequestOptions,
162            completion: &block2::DynBlock<
163                dyn Fn(ASAuthorizationProviderExtensionRegistrationResult),
164            >,
165        );
166
167        #[cfg(all(
168            feature = "ASAuthorizationProviderExtensionLoginManager",
169            feature = "block2"
170        ))]
171        /// This initiates user registration process for the user and the extension.
172        ///
173        /// Parameter `loginManager`: The login manager used to interface with Platform SSO.
174        ///
175        /// Parameter `userName`: The username for the user registration.
176        ///
177        /// Parameter `authenticationMethod`: The authentication method to be used for the user.
178        ///
179        /// Parameter `options`: The request options that apply to the request.
180        ///
181        /// Parameter `completion`: The completion to call to continue user registration.
182        #[unsafe(method(beginUserRegistrationUsingLoginManager:userName:authenticationMethod:options:completion:))]
183        #[unsafe(method_family = none)]
184        unsafe fn beginUserRegistrationUsingLoginManager_userName_authenticationMethod_options_completion(
185            &self,
186            login_manager: &ASAuthorizationProviderExtensionLoginManager,
187            user_name: Option<&NSString>,
188            authentication_method: ASAuthorizationProviderExtensionAuthenticationMethod,
189            options: ASAuthorizationProviderExtensionRequestOptions,
190            completion: &block2::DynBlock<
191                dyn Fn(ASAuthorizationProviderExtensionRegistrationResult),
192            >,
193        );
194
195        /// Call to extension to free any resources used by the extension during registration. It will be called once after all current registration calls are complete.
196        #[optional]
197        #[unsafe(method(registrationDidComplete))]
198        #[unsafe(method_family = none)]
199        unsafe fn registrationDidComplete(&self);
200
201        /// Call to extension when the registration has been cancelled.
202        #[optional]
203        #[unsafe(method(registrationDidCancel))]
204        #[unsafe(method_family = none)]
205        unsafe fn registrationDidCancel(&self);
206
207        /// The grant types supported by the identity provider.
208        #[optional]
209        #[unsafe(method(supportedGrantTypes))]
210        #[unsafe(method_family = none)]
211        unsafe fn supportedGrantTypes(&self)
212            -> ASAuthorizationProviderExtensionSupportedGrantTypes;
213
214        /// The protocol version supported by the identity provider.
215        #[optional]
216        #[unsafe(method(protocolVersion))]
217        #[unsafe(method_family = none)]
218        unsafe fn protocolVersion(
219            &self,
220        ) -> ASAuthorizationProviderExtensionPlatformSSOProtocolVersion;
221
222        #[cfg(feature = "ASAuthorizationProviderExtensionLoginConfiguration")]
223        /// The supported device signing algorithms.
224        #[optional]
225        #[unsafe(method(supportedDeviceSigningAlgorithms))]
226        #[unsafe(method_family = none)]
227        unsafe fn supportedDeviceSigningAlgorithms(
228            &self,
229        ) -> Retained<NSArray<ASAuthorizationProviderExtensionSigningAlgorithm>>;
230
231        #[cfg(feature = "ASAuthorizationProviderExtensionLoginConfiguration")]
232        /// The supported device encryption algorithms.
233        #[optional]
234        #[unsafe(method(supportedDeviceEncryptionAlgorithms))]
235        #[unsafe(method_family = none)]
236        unsafe fn supportedDeviceEncryptionAlgorithms(
237            &self,
238        ) -> Retained<NSArray<ASAuthorizationProviderExtensionEncryptionAlgorithm>>;
239
240        #[cfg(feature = "ASAuthorizationProviderExtensionLoginConfiguration")]
241        /// The supported user Secure Enclave Key signing algorithms.
242        #[optional]
243        #[unsafe(method(supportedUserSecureEnclaveKeySigningAlgorithms))]
244        #[unsafe(method_family = none)]
245        unsafe fn supportedUserSecureEnclaveKeySigningAlgorithms(
246            &self,
247        ) -> Retained<NSArray<ASAuthorizationProviderExtensionSigningAlgorithm>>;
248
249        #[cfg(all(
250            feature = "ASAuthorizationProviderExtensionLoginManager",
251            feature = "block2",
252            feature = "objc2-security"
253        ))]
254        /// The specified keyType will rotate to a new key. The rotation is complete when the completion handler is called.  This is only called by the system for automatic key rotation.
255        #[optional]
256        #[unsafe(method(keyWillRotateForKeyType:newKey:loginManager:completion:))]
257        #[unsafe(method_family = none)]
258        unsafe fn keyWillRotateForKeyType_newKey_loginManager_completion(
259            &self,
260            key_type: ASAuthorizationProviderExtensionKeyType,
261            new_key: &SecKey,
262            login_manager: &ASAuthorizationProviderExtensionLoginManager,
263            completion: &block2::DynBlock<dyn Fn(Bool)>,
264        );
265
266        #[cfg(all(
267            feature = "ASAuthorizationProviderExtensionLoginManager",
268            feature = "block2"
269        ))]
270        /// Request the display names for the supplied group identifiers.  The completion key is the identifier and the value is the display name.
271        #[optional]
272        #[unsafe(method(displayNamesForGroups:loginManager:completion:))]
273        #[unsafe(method_family = none)]
274        unsafe fn displayNamesForGroups_loginManager_completion(
275            &self,
276            groups: &NSArray<NSString>,
277            login_manager: &ASAuthorizationProviderExtensionLoginManager,
278            completion: &block2::DynBlock<dyn Fn(NonNull<NSDictionary<NSString, NSString>>)>,
279        );
280
281        #[cfg(all(
282            feature = "ASAuthorizationProviderExtensionLoginManager",
283            feature = "block2"
284        ))]
285        /// Request the profile picture for the current user in jpeg format.
286        #[optional]
287        #[unsafe(method(profilePictureForUserUsingLoginManager:completion:))]
288        #[unsafe(method_family = none)]
289        unsafe fn profilePictureForUserUsingLoginManager_completion(
290            &self,
291            login_manager: &ASAuthorizationProviderExtensionLoginManager,
292            completion: &block2::DynBlock<dyn Fn(NonNull<NSData>)>,
293        );
294    }
295);