objc2-authentication-services 0.3.2

Bindings to the AuthenticationServices framework
Documentation
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
#[cfg(target_os = "macos")]
use objc2_app_kit::*;
use objc2_foundation::*;

use crate::*;

#[cfg(target_os = "macos")]
extern_conformance!(
    unsafe impl NSCoding for ASAccountAuthenticationModificationViewController {}
);

#[cfg(target_os = "macos")]
extern_conformance!(
    unsafe impl NSEditor for ASAccountAuthenticationModificationViewController {}
);

#[cfg(target_os = "macos")]
extern_conformance!(
    unsafe impl NSObjectProtocol for ASAccountAuthenticationModificationViewController {}
);

#[cfg(target_os = "macos")]
extern_conformance!(
    unsafe impl NSSeguePerforming for ASAccountAuthenticationModificationViewController {}
);

#[cfg(target_os = "macos")]
extern_conformance!(
    unsafe impl NSUserInterfaceItemIdentification
        for ASAccountAuthenticationModificationViewController
    {
    }
);

#[cfg(target_os = "macos")]
impl ASAccountAuthenticationModificationViewController {
    extern_methods!(
        #[cfg(feature = "ASAccountAuthenticationModificationExtensionContext")]
        #[unsafe(method(extensionContext))]
        #[unsafe(method_family = none)]
        pub unsafe fn extensionContext(
            &self,
        ) -> Retained<ASAccountAuthenticationModificationExtensionContext>;

        #[cfg(all(
            feature = "ASCredentialServiceIdentifier",
            feature = "ASPasswordCredential"
        ))]
        /// This method will be called when a user initiates a Sign in with Apple upgrade request.
        ///
        /// Parameter `serviceIdentifier`: The service identifier of the credential the user wishes to upgrade.
        ///
        /// Parameter `existingCredential`: The current password-based credential of the account for the upgrade.
        ///
        /// Parameter `userInfo`: For upgrades invoked within the extension's containing app, any
        /// information the app wants to pass to the extension, most likely to help authorize the upgrade.
        ///
        /// This method will be called to begin a Sign in with Apple upgrade request and will not
        /// present any extension UI. If extension UI needs to be shown, this initial request should be canceled
        /// with the ASExtensionErrorCodeUserCanceled error code. The existingCredential parameter will have
        /// an empty password for in-app upgrades. The extension should check if a user is already logged in by
        /// checking a data container shared with its containing app.
        ///
        /// # Safety
        ///
        /// `user_info` generic should be of the correct type.
        #[unsafe(method(convertAccountToSignInWithAppleWithoutUserInteractionForServiceIdentifier:existingCredential:userInfo:))]
        #[unsafe(method_family = none)]
        pub unsafe fn convertAccountToSignInWithAppleWithoutUserInteractionForServiceIdentifier_existingCredential_userInfo(
            &self,
            service_identifier: &ASCredentialServiceIdentifier,
            existing_credential: &ASPasswordCredential,
            user_info: Option<&NSDictionary>,
        );

        #[cfg(all(
            feature = "ASCredentialServiceIdentifier",
            feature = "ASPasswordCredential"
        ))]
        /// This method will be called when a Sign in with Apple upgrade request requires user interaction.
        ///
        /// Parameter `serviceIdentifier`: The service identifier of the credential the user wishes to upgrade.
        ///
        /// Parameter `existingCredential`: The current password-based credential of the account for the upgrade.
        ///
        /// Parameter `userInfo`: For upgrades invoked within the extension's containing app, any
        /// information the app wants to pass to the extension, most likely to help authorize the upgrade.
        ///
        /// This method will be called when the initial request is canceled with the
        /// ASExtensionErrorCodeUserCanceled error code. The implementation of this method should do any
        /// work necessary to prepare to present the extension UI. Once it finishes, the system will present the
        /// extension UI. The existingCredential parameter will have an empty password for in-app upgrades. The
        /// extension should check if a user is already logged in by checking state in a data container shared
        /// with its containing app.
        ///
        /// # Safety
        ///
        /// `user_info` generic should be of the correct type.
        #[unsafe(method(prepareInterfaceToConvertAccountToSignInWithAppleForServiceIdentifier:existingCredential:userInfo:))]
        #[unsafe(method_family = none)]
        pub unsafe fn prepareInterfaceToConvertAccountToSignInWithAppleForServiceIdentifier_existingCredential_userInfo(
            &self,
            service_identifier: &ASCredentialServiceIdentifier,
            existing_credential: &ASPasswordCredential,
            user_info: Option<&NSDictionary>,
        );

        #[cfg(all(
            feature = "ASCredentialServiceIdentifier",
            feature = "ASPasswordCredential"
        ))]
        /// This method will be called when a user initiates a strong password upgrade request.
        ///
        /// Parameter `serviceIdentifier`: The service identifier of the credential the user wishes to upgrade.
        ///
        /// Parameter `existingCredential`: The current password-based credential of the account for the upgrade.
        ///
        /// Parameter `newPassword`: A strong password generated by the system to be used for the upgrade.
        ///
        /// Parameter `userInfo`: For upgrades invoked within the extension's containing app, any
        /// information the app wants to pass to the extension, most likely to help authorize the upgrade.
        ///
        /// Password rules for generating the newPassword parameter can be specified
        /// with the ASAccountAuthenticationModificationSupportsUpgradeToSignInWithApple key in the
        /// extension's Info.plist. This method will be called to begin a strong password upgrade request and
        /// will not present any extension UI. If extension UI needs to be shown, this initial request should be
        /// canceled with the ASExtensionErrorCodeUserCanceled error code. The existingCredential parameter
        /// will have an empty password for in-app upgrades. The extension should check if a user is already
        /// logged in by checking a data container shared with its containing app.
        ///
        /// # Safety
        ///
        /// `user_info` generic should be of the correct type.
        #[unsafe(method(changePasswordWithoutUserInteractionForServiceIdentifier:existingCredential:newPassword:userInfo:))]
        #[unsafe(method_family = none)]
        pub unsafe fn changePasswordWithoutUserInteractionForServiceIdentifier_existingCredential_newPassword_userInfo(
            &self,
            service_identifier: &ASCredentialServiceIdentifier,
            existing_credential: &ASPasswordCredential,
            new_password: &NSString,
            user_info: Option<&NSDictionary>,
        );

        #[cfg(all(
            feature = "ASCredentialServiceIdentifier",
            feature = "ASPasswordCredential"
        ))]
        /// This method will be called when a strong password upgrade request requires user interaction.
        ///
        /// Parameter `serviceIdentifier`: The service identifier of the credential the user wishes to upgrade.
        ///
        /// Parameter `existingCredential`: The current password-based credential of the account for the upgrade.
        ///
        /// Parameter `newPassword`: A strong password generated by the system to be used for the upgrade.
        ///
        /// Parameter `userInfo`: For upgrades invoked within the extension's containing app, any
        /// information the app wants to pass to the extension, most likely to help authorize the upgrade.
        ///
        /// This method will be called when the initial request is canceled with the
        /// ASExtensionErrorCodeUserCanceled error code. The implementation of this method should do
        /// any work necessary to prepare to present the extension UI. Once it finishes, the system will present
        /// the extension UI. Password rules for generating the newPassword parameter can be specified
        /// with the ASAccountAuthenticationModificationSupportsUpgradeToSignInWithApple key in the
        /// extension's Info.plist. The existingCredential parameter will have an empty password for in-app upgrades.
        /// The extension should check if a user is already logged in by checking state in a data container shared
        /// with its containing app.
        ///
        /// # Safety
        ///
        /// `user_info` generic should be of the correct type.
        #[unsafe(method(prepareInterfaceToChangePasswordForServiceIdentifier:existingCredential:newPassword:userInfo:))]
        #[unsafe(method_family = none)]
        pub unsafe fn prepareInterfaceToChangePasswordForServiceIdentifier_existingCredential_newPassword_userInfo(
            &self,
            service_identifier: &ASCredentialServiceIdentifier,
            existing_credential: &ASPasswordCredential,
            new_password: &NSString,
            user_info: Option<&NSDictionary>,
        );

        /// This method will be called when the user taps the system-provided "Cancel" button shown above extension UI.
        ///
        /// Extension UI will be dismissed as soon as this method is called. The default
        /// implementation simply cancels the request with the ASExtensionErrorCodeUserCanceled error code.
        /// Override this method to do any cleanup work before the request is canceled. The implementation of this
        /// method should still cancel the request with the ASExtensionErrorCodeUserCanceled error code once the
        /// cleanup work is completed. If the request is not canceled in 10 seconds, the system will cancel the request.
        #[unsafe(method(cancelRequest))]
        #[unsafe(method_family = none)]
        pub unsafe fn cancelRequest(&self);
    );
}

/// Methods declared on superclass `NSViewController`.
#[cfg(target_os = "macos")]
impl ASAccountAuthenticationModificationViewController {
    extern_methods!(
        #[unsafe(method(initWithNibName:bundle:))]
        #[unsafe(method_family = init)]
        pub unsafe fn initWithNibName_bundle(
            this: Allocated<Self>,
            nib_name_or_nil: Option<&NSNibName>,
            nib_bundle_or_nil: Option<&NSBundle>,
        ) -> Retained<Self>;

        /// # Safety
        ///
        /// `coder` possibly has further requirements.
        #[unsafe(method(initWithCoder:))]
        #[unsafe(method_family = init)]
        pub unsafe fn initWithCoder(
            this: Allocated<Self>,
            coder: &NSCoder,
        ) -> Option<Retained<Self>>;
    );
}

/// Methods declared on superclass `NSResponder`.
#[cfg(target_os = "macos")]
impl ASAccountAuthenticationModificationViewController {
    extern_methods!(
        #[unsafe(method(init))]
        #[unsafe(method_family = init)]
        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
    );
}

/// Methods declared on superclass `NSObject`.
#[cfg(target_os = "macos")]
impl ASAccountAuthenticationModificationViewController {
    extern_methods!(
        #[unsafe(method(new))]
        #[unsafe(method_family = new)]
        pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
    );
}