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 {}
);