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    }
56}
57
58unsafe impl Encode for ASAuthorizationProviderExtensionRequestOptions {
59    const ENCODING: Encoding = NSUInteger::ENCODING;
60}
61
62unsafe impl RefEncode for ASAuthorizationProviderExtensionRequestOptions {
63    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
64}
65
66/// [Apple's documentation](https://developer.apple.com/documentation/authenticationservices/asauthorizationproviderextensionregistrationresult?language=objc)
67// NS_ENUM
68#[repr(transparent)]
69#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
70pub struct ASAuthorizationProviderExtensionRegistrationResult(pub NSInteger);
71impl ASAuthorizationProviderExtensionRegistrationResult {
72    #[doc(alias = "ASAuthorizationProviderExtensionRegistrationResultSuccess")]
73    pub const Success: Self = Self(0);
74    #[doc(alias = "ASAuthorizationProviderExtensionRegistrationResultFailed")]
75    pub const Failed: Self = Self(1);
76    #[doc(alias = "ASAuthorizationProviderExtensionRegistrationResultUserInterfaceRequired")]
77    pub const UserInterfaceRequired: Self = Self(2);
78    #[doc(alias = "ASAuthorizationProviderExtensionRegistrationResultFailedNoRetry")]
79    pub const FailedNoRetry: Self = Self(3);
80}
81
82unsafe impl Encode for ASAuthorizationProviderExtensionRegistrationResult {
83    const ENCODING: Encoding = NSInteger::ENCODING;
84}
85
86unsafe impl RefEncode for ASAuthorizationProviderExtensionRegistrationResult {
87    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
88}
89
90/// [Apple's documentation](https://developer.apple.com/documentation/authenticationservices/asauthorizationproviderextensionsupportedgranttypes?language=objc)
91// NS_OPTIONS
92#[repr(transparent)]
93#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
94pub struct ASAuthorizationProviderExtensionSupportedGrantTypes(pub NSInteger);
95bitflags::bitflags! {
96    impl ASAuthorizationProviderExtensionSupportedGrantTypes: NSInteger {
97        #[doc(alias = "ASAuthorizationProviderExtensionSupportedGrantTypesNone")]
98        const None = 0;
99        #[doc(alias = "ASAuthorizationProviderExtensionSupportedGrantTypesPassword")]
100        const Password = 1<<0;
101        #[doc(alias = "ASAuthorizationProviderExtensionSupportedGrantTypesJWTBearer")]
102        const JWTBearer = 1<<1;
103        #[doc(alias = "ASAuthorizationProviderExtensionSupportedGrantTypesSAML1_1")]
104        const SAML1_1 = 1<<2;
105        #[doc(alias = "ASAuthorizationProviderExtensionSupportedGrantTypesSAML2_0")]
106        const SAML2_0 = 1<<3;
107    }
108}
109
110unsafe impl Encode for ASAuthorizationProviderExtensionSupportedGrantTypes {
111    const ENCODING: Encoding = NSInteger::ENCODING;
112}
113
114unsafe impl RefEncode for ASAuthorizationProviderExtensionSupportedGrantTypes {
115    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
116}
117
118/// [Apple's documentation](https://developer.apple.com/documentation/authenticationservices/asauthorizationproviderextensionplatformssoprotocolversion?language=objc)
119// NS_ENUM
120#[repr(transparent)]
121#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
122pub struct ASAuthorizationProviderExtensionPlatformSSOProtocolVersion(pub NSInteger);
123impl ASAuthorizationProviderExtensionPlatformSSOProtocolVersion {
124    #[doc(alias = "ASAuthorizationProviderExtensionPlatformSSOProtocolVersion1_0")]
125    pub const Version1_0: Self = Self(0);
126    #[doc(alias = "ASAuthorizationProviderExtensionPlatformSSOProtocolVersion2_0")]
127    pub const Version2_0: Self = Self(1);
128}
129
130unsafe impl Encode for ASAuthorizationProviderExtensionPlatformSSOProtocolVersion {
131    const ENCODING: Encoding = NSInteger::ENCODING;
132}
133
134unsafe impl RefEncode for ASAuthorizationProviderExtensionPlatformSSOProtocolVersion {
135    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
136}
137
138extern_protocol!(
139    /// [Apple's documentation](https://developer.apple.com/documentation/authenticationservices/asauthorizationproviderextensionregistrationhandler?language=objc)
140    pub unsafe trait ASAuthorizationProviderExtensionRegistrationHandler:
141        NSObjectProtocol
142    {
143        #[cfg(all(
144            feature = "ASAuthorizationProviderExtensionLoginManager",
145            feature = "block2"
146        ))]
147        /// This initiates device registration process for the SSO extension.
148        ///
149        /// Parameter `loginManager`: The login manager used to interface with Platform SSO.
150        ///
151        /// Parameter `options`: The request options that apply to the request.
152        ///
153        /// Parameter `completion`: The completion to call to continue device registration.
154        #[unsafe(method(beginDeviceRegistrationUsingLoginManager:options:completion:))]
155        #[unsafe(method_family = none)]
156        unsafe fn beginDeviceRegistrationUsingLoginManager_options_completion(
157            &self,
158            login_manager: &ASAuthorizationProviderExtensionLoginManager,
159            options: ASAuthorizationProviderExtensionRequestOptions,
160            completion: &block2::DynBlock<
161                dyn Fn(ASAuthorizationProviderExtensionRegistrationResult),
162            >,
163        );
164
165        #[cfg(all(
166            feature = "ASAuthorizationProviderExtensionLoginManager",
167            feature = "block2"
168        ))]
169        /// This initiates user registration process for the user and the extension.
170        ///
171        /// Parameter `loginManager`: The login manager used to interface with Platform SSO.
172        ///
173        /// Parameter `userName`: The username for the user registration.
174        ///
175        /// Parameter `authenticationMethod`: The authentication method to be used for the user.
176        ///
177        /// Parameter `options`: The request options that apply to the request.
178        ///
179        /// Parameter `completion`: The completion to call to continue user registration.
180        #[unsafe(method(beginUserRegistrationUsingLoginManager:userName:authenticationMethod:options:completion:))]
181        #[unsafe(method_family = none)]
182        unsafe fn beginUserRegistrationUsingLoginManager_userName_authenticationMethod_options_completion(
183            &self,
184            login_manager: &ASAuthorizationProviderExtensionLoginManager,
185            user_name: Option<&NSString>,
186            authentication_method: ASAuthorizationProviderExtensionAuthenticationMethod,
187            options: ASAuthorizationProviderExtensionRequestOptions,
188            completion: &block2::DynBlock<
189                dyn Fn(ASAuthorizationProviderExtensionRegistrationResult),
190            >,
191        );
192
193        /// 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.
194        #[optional]
195        #[unsafe(method(registrationDidComplete))]
196        #[unsafe(method_family = none)]
197        unsafe fn registrationDidComplete(&self);
198
199        /// Call to extension when the registration has been cancelled.
200        #[optional]
201        #[unsafe(method(registrationDidCancel))]
202        #[unsafe(method_family = none)]
203        unsafe fn registrationDidCancel(&self);
204
205        /// The grant types supported by the identity provider.
206        #[optional]
207        #[unsafe(method(supportedGrantTypes))]
208        #[unsafe(method_family = none)]
209        unsafe fn supportedGrantTypes(&self)
210            -> ASAuthorizationProviderExtensionSupportedGrantTypes;
211
212        /// The protocol version supported by the identity provider.
213        #[optional]
214        #[unsafe(method(protocolVersion))]
215        #[unsafe(method_family = none)]
216        unsafe fn protocolVersion(
217            &self,
218        ) -> ASAuthorizationProviderExtensionPlatformSSOProtocolVersion;
219
220        #[cfg(feature = "ASAuthorizationProviderExtensionLoginConfiguration")]
221        /// The supported device signing algorithms.
222        #[optional]
223        #[unsafe(method(supportedDeviceSigningAlgorithms))]
224        #[unsafe(method_family = none)]
225        unsafe fn supportedDeviceSigningAlgorithms(
226            &self,
227        ) -> Retained<NSArray<ASAuthorizationProviderExtensionSigningAlgorithm>>;
228
229        #[cfg(feature = "ASAuthorizationProviderExtensionLoginConfiguration")]
230        /// The supported device encryption algorithms.
231        #[optional]
232        #[unsafe(method(supportedDeviceEncryptionAlgorithms))]
233        #[unsafe(method_family = none)]
234        unsafe fn supportedDeviceEncryptionAlgorithms(
235            &self,
236        ) -> Retained<NSArray<ASAuthorizationProviderExtensionEncryptionAlgorithm>>;
237
238        #[cfg(feature = "ASAuthorizationProviderExtensionLoginConfiguration")]
239        /// The supported user Secure Enclave Key signing algorithms.
240        #[optional]
241        #[unsafe(method(supportedUserSecureEnclaveKeySigningAlgorithms))]
242        #[unsafe(method_family = none)]
243        unsafe fn supportedUserSecureEnclaveKeySigningAlgorithms(
244            &self,
245        ) -> Retained<NSArray<ASAuthorizationProviderExtensionSigningAlgorithm>>;
246
247        #[cfg(all(
248            feature = "ASAuthorizationProviderExtensionLoginManager",
249            feature = "block2",
250            feature = "objc2-security"
251        ))]
252        /// 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.
253        #[optional]
254        #[unsafe(method(keyWillRotateForKeyType:newKey:loginManager:completion:))]
255        #[unsafe(method_family = none)]
256        unsafe fn keyWillRotateForKeyType_newKey_loginManager_completion(
257            &self,
258            key_type: ASAuthorizationProviderExtensionKeyType,
259            new_key: &SecKey,
260            login_manager: &ASAuthorizationProviderExtensionLoginManager,
261            completion: &block2::DynBlock<dyn Fn(Bool)>,
262        );
263    }
264);