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::*;
use objc2_foundation::*;

use crate::*;

extern_class!(
    /// [Apple's documentation](https://developer.apple.com/documentation/authenticationservices/asauthorizationsecuritykeypublickeycredentialassertionrequest?language=objc)
    #[unsafe(super(ASAuthorizationRequest, NSObject))]
    #[derive(Debug, PartialEq, Eq, Hash)]
    #[cfg(feature = "ASAuthorizationRequest")]
    pub struct ASAuthorizationSecurityKeyPublicKeyCredentialAssertionRequest;
);

#[cfg(all(
    feature = "ASAuthorizationPublicKeyCredentialAssertionRequest",
    feature = "ASAuthorizationRequest"
))]
extern_conformance!(
    unsafe impl ASAuthorizationPublicKeyCredentialAssertionRequest
        for ASAuthorizationSecurityKeyPublicKeyCredentialAssertionRequest
    {
    }
);

#[cfg(feature = "ASAuthorizationRequest")]
extern_conformance!(
    unsafe impl NSCoding for ASAuthorizationSecurityKeyPublicKeyCredentialAssertionRequest {}
);

#[cfg(feature = "ASAuthorizationRequest")]
extern_conformance!(
    unsafe impl NSCopying for ASAuthorizationSecurityKeyPublicKeyCredentialAssertionRequest {}
);

#[cfg(feature = "ASAuthorizationRequest")]
unsafe impl CopyingHelper for ASAuthorizationSecurityKeyPublicKeyCredentialAssertionRequest {
    type Result = Self;
}

#[cfg(feature = "ASAuthorizationRequest")]
extern_conformance!(
    unsafe impl NSObjectProtocol for ASAuthorizationSecurityKeyPublicKeyCredentialAssertionRequest {}
);

#[cfg(feature = "ASAuthorizationRequest")]
extern_conformance!(
    unsafe impl NSSecureCoding for ASAuthorizationSecurityKeyPublicKeyCredentialAssertionRequest {}
);

#[cfg(feature = "ASAuthorizationRequest")]
impl ASAuthorizationSecurityKeyPublicKeyCredentialAssertionRequest {
    extern_methods!(
        #[cfg(feature = "ASAuthorizationSecurityKeyPublicKeyCredentialDescriptor")]
        /// A list of descriptors indicating credentials that may be used to sign in. If this is non-empty, only credentials matching the provided descriptors can be used when authenticating.
        #[unsafe(method(allowedCredentials))]
        #[unsafe(method_family = none)]
        pub unsafe fn allowedCredentials(
            &self,
        ) -> Retained<NSArray<ASAuthorizationSecurityKeyPublicKeyCredentialDescriptor>>;

        #[cfg(feature = "ASAuthorizationSecurityKeyPublicKeyCredentialDescriptor")]
        /// Setter for [`allowedCredentials`][Self::allowedCredentials].
        ///
        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
        #[unsafe(method(setAllowedCredentials:))]
        #[unsafe(method_family = none)]
        pub unsafe fn setAllowedCredentials(
            &self,
            allowed_credentials: &NSArray<ASAuthorizationSecurityKeyPublicKeyCredentialDescriptor>,
        );

        /// Use this value to request the appid WebAuthn extension. This can only be requested by web browsers.
        #[unsafe(method(appID))]
        #[unsafe(method_family = none)]
        pub unsafe fn appID(&self) -> Option<Retained<NSString>>;

        /// Setter for [`appID`][Self::appID].
        ///
        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
        #[unsafe(method(setAppID:))]
        #[unsafe(method_family = none)]
        pub unsafe fn setAppID(&self, app_id: Option<&NSString>);
    );
}

/// Methods declared on superclass `ASAuthorizationRequest`.
#[cfg(feature = "ASAuthorizationRequest")]
impl ASAuthorizationSecurityKeyPublicKeyCredentialAssertionRequest {
    extern_methods!(
        #[unsafe(method(new))]
        #[unsafe(method_family = new)]
        pub unsafe fn new() -> Retained<Self>;

        #[unsafe(method(init))]
        #[unsafe(method_family = init)]
        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
    );
}

#[cfg(feature = "ASAuthorizationRequest")]
impl ASAuthorizationSecurityKeyPublicKeyCredentialAssertionRequest {
    extern_methods!();
}

#[cfg(all(
    feature = "ASAuthorizationRequest",
    feature = "ASAuthorizationWebBrowserSecurityKeyPublicKeyCredentialAssertionRequest"
))]
extern_conformance!(
    unsafe impl ASAuthorizationWebBrowserSecurityKeyPublicKeyCredentialAssertionRequest
        for ASAuthorizationSecurityKeyPublicKeyCredentialAssertionRequest
    {
    }
);