icrate 0.1.2

Bindings to Apple's frameworks
Documentation
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use crate::common::*;
use crate::AppKit::*;
use crate::AuthenticationServices::*;
use crate::Foundation::*;

ns_enum!(
    #[underlying(NSInteger)]
    pub enum ASAuthorizationProviderExtensionAuthenticationMethod {
        ASAuthorizationProviderExtensionAuthenticationMethodPassword = 1,
        ASAuthorizationProviderExtensionAuthenticationMethodUserSecureEnclaveKey = 2,
        ASAuthorizationProviderExtensionAuthenticationMethodSmartCard = 3,
    }
);

ns_options!(
    #[underlying(NSUInteger)]
    pub enum ASAuthorizationProviderExtensionRequestOptions {
        ASAuthorizationProviderExtensionRequestOptionsNone = 0,
        ASAuthorizationProviderExtensionRequestOptionsUserInteractionEnabled = 1 << 0,
        ASAuthorizationProviderExtensionRequestOptionsRegistrationRepair = 1 << 1,
        ASAuthorizationProviderExtensionRequestOptionsRegistrationSharedDeviceKeys = 1 << 2,
        ASAuthorizationProviderExtensionRequestOptionsRegistrationDeviceKeyMigration = 1 << 3,
    }
);

ns_enum!(
    #[underlying(NSInteger)]
    pub enum ASAuthorizationProviderExtensionRegistrationResult {
        ASAuthorizationProviderExtensionRegistrationResultSuccess = 0,
        ASAuthorizationProviderExtensionRegistrationResultFailed = 1,
        ASAuthorizationProviderExtensionRegistrationResultUserInterfaceRequired = 2,
        ASAuthorizationProviderExtensionRegistrationResultFailedNoRetry = 3,
    }
);

ns_options!(
    #[underlying(NSInteger)]
    pub enum ASAuthorizationProviderExtensionSupportedGrantTypes {
        ASAuthorizationProviderExtensionSupportedGrantTypesNone = 0,
        ASAuthorizationProviderExtensionSupportedGrantTypesPassword = 1 << 0,
        ASAuthorizationProviderExtensionSupportedGrantTypesJWTBearer = 1 << 1,
        ASAuthorizationProviderExtensionSupportedGrantTypesSAML1_1 = 1 << 2,
        ASAuthorizationProviderExtensionSupportedGrantTypesSAML2_0 = 1 << 3,
    }
);

ns_enum!(
    #[underlying(NSInteger)]
    pub enum ASAuthorizationProviderExtensionPlatformSSOProtocolVersion {
        ASAuthorizationProviderExtensionPlatformSSOProtocolVersion1_0 = 0,
        ASAuthorizationProviderExtensionPlatformSSOProtocolVersion2_0 = 1,
    }
);

extern_protocol!(
    pub unsafe trait ASAuthorizationProviderExtensionRegistrationHandler:
        NSObjectProtocol
    {
        #[cfg(feature = "AuthenticationServices_ASAuthorizationProviderExtensionLoginManager")]
        #[method(beginDeviceRegistrationUsingLoginManager:options:completion:)]
        unsafe fn beginDeviceRegistrationUsingLoginManager_options_completion(
            &self,
            login_manager: &ASAuthorizationProviderExtensionLoginManager,
            options: ASAuthorizationProviderExtensionRequestOptions,
            completion: &Block<(ASAuthorizationProviderExtensionRegistrationResult,), ()>,
        );

        #[cfg(all(
            feature = "AuthenticationServices_ASAuthorizationProviderExtensionLoginManager",
            feature = "Foundation_NSString"
        ))]
        #[method(beginUserRegistrationUsingLoginManager:userName:authenticationMethod:options:completion:)]
        unsafe fn beginUserRegistrationUsingLoginManager_userName_authenticationMethod_options_completion(
            &self,
            login_manager: &ASAuthorizationProviderExtensionLoginManager,
            user_name: Option<&NSString>,
            authentication_method: ASAuthorizationProviderExtensionAuthenticationMethod,
            options: ASAuthorizationProviderExtensionRequestOptions,
            completion: &Block<(ASAuthorizationProviderExtensionRegistrationResult,), ()>,
        );

        #[optional]
        #[method(registrationDidComplete)]
        unsafe fn registrationDidComplete(&self);

        #[optional]
        #[method(registrationDidCancel)]
        unsafe fn registrationDidCancel(&self);

        #[optional]
        #[method(supportedGrantTypes)]
        unsafe fn supportedGrantTypes(&self)
            -> ASAuthorizationProviderExtensionSupportedGrantTypes;

        #[optional]
        #[method(protocolVersion)]
        unsafe fn protocolVersion(
            &self,
        ) -> ASAuthorizationProviderExtensionPlatformSSOProtocolVersion;
    }

    unsafe impl ProtocolType for dyn ASAuthorizationProviderExtensionRegistrationHandler {}
);