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/asauthorizationplatformpublickeycredentialassertionrequest?language=objc)
    #[unsafe(super(ASAuthorizationRequest, NSObject))]
    #[derive(Debug, PartialEq, Eq, Hash)]
    #[cfg(feature = "ASAuthorizationRequest")]
    pub struct ASAuthorizationPlatformPublicKeyCredentialAssertionRequest;
);

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

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

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

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

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

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

#[cfg(feature = "ASAuthorizationRequest")]
impl ASAuthorizationPlatformPublicKeyCredentialAssertionRequest {
    extern_methods!(
        #[cfg(feature = "ASAuthorizationPlatformPublicKeyCredentialDescriptor")]
        /// A list of credentials to allow for this request. If this ilist is nonempty, only credentials matching the provided descriptors can be used to sign in.
        #[unsafe(method(allowedCredentials))]
        #[unsafe(method_family = none)]
        pub unsafe fn allowedCredentials(
            &self,
        ) -> Retained<NSArray<ASAuthorizationPlatformPublicKeyCredentialDescriptor>>;

        #[cfg(feature = "ASAuthorizationPlatformPublicKeyCredentialDescriptor")]
        /// 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<ASAuthorizationPlatformPublicKeyCredentialDescriptor>,
        );

        #[cfg(feature = "ASAuthorizationPublicKeyCredentialLargeBlobAssertionInput")]
        #[unsafe(method(largeBlob))]
        #[unsafe(method_family = none)]
        pub unsafe fn largeBlob(
            &self,
        ) -> Option<Retained<ASAuthorizationPublicKeyCredentialLargeBlobAssertionInput>>;

        #[cfg(feature = "ASAuthorizationPublicKeyCredentialLargeBlobAssertionInput")]
        /// Setter for [`largeBlob`][Self::largeBlob].
        #[unsafe(method(setLargeBlob:))]
        #[unsafe(method_family = none)]
        pub unsafe fn setLargeBlob(
            &self,
            large_blob: Option<&ASAuthorizationPublicKeyCredentialLargeBlobAssertionInput>,
        );

        #[cfg(feature = "ASAuthorizationPublicKeyCredentialPRFAssertionInput")]
        #[unsafe(method(prf))]
        #[unsafe(method_family = none)]
        pub unsafe fn prf(
            &self,
        ) -> Option<Retained<ASAuthorizationPublicKeyCredentialPRFAssertionInput>>;

        #[cfg(feature = "ASAuthorizationPublicKeyCredentialPRFAssertionInput")]
        /// Setter for [`prf`][Self::prf].
        #[unsafe(method(setPrf:))]
        #[unsafe(method_family = none)]
        pub unsafe fn setPrf(
            &self,
            prf: Option<&ASAuthorizationPublicKeyCredentialPRFAssertionInput>,
        );

        #[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 ASAuthorizationPlatformPublicKeyCredentialAssertionRequest {
    extern_methods!();
}

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

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

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