//
// Copyright (c) Microsoft Corporation. All rights reserved.
// 
//
// File generated by WinMDIDL version 8.00.0018
//

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "windowscontracts.idl";
import "Windows.Foundation.idl";
import "Windows.Storage.Streams.idl";

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        interface IAsyncAction;

        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IBuffer;
        }
    }
}
namespace Windows
{
    namespace Security
    {
        namespace Authentication
        {
            namespace Identity
            {
                namespace Provider
                {
                    typedef enum SecondaryAuthenticationFactorAuthenticationMessage SecondaryAuthenticationFactorAuthenticationMessage;

                    typedef enum SecondaryAuthenticationFactorAuthenticationScenario SecondaryAuthenticationFactorAuthenticationScenario;

                    typedef enum SecondaryAuthenticationFactorAuthenticationStage SecondaryAuthenticationFactorAuthenticationStage;

                    typedef enum SecondaryAuthenticationFactorAuthenticationStatus SecondaryAuthenticationFactorAuthenticationStatus;

                    typedef enum SecondaryAuthenticationFactorDeviceCapabilities SecondaryAuthenticationFactorDeviceCapabilities;

                    typedef enum SecondaryAuthenticationFactorDeviceFindScope SecondaryAuthenticationFactorDeviceFindScope;

                    typedef enum SecondaryAuthenticationFactorDevicePresence SecondaryAuthenticationFactorDevicePresence;

                    typedef enum SecondaryAuthenticationFactorDevicePresenceMonitoringMode SecondaryAuthenticationFactorDevicePresenceMonitoringMode;

                    typedef enum SecondaryAuthenticationFactorDevicePresenceMonitoringRegistrationStatus SecondaryAuthenticationFactorDevicePresenceMonitoringRegistrationStatus;

                    typedef enum SecondaryAuthenticationFactorFinishAuthenticationStatus SecondaryAuthenticationFactorFinishAuthenticationStatus;

                    typedef enum SecondaryAuthenticationFactorRegistrationStatus SecondaryAuthenticationFactorRegistrationStatus;

                    interface ISecondaryAuthenticationFactorAuthentication;

                    interface ISecondaryAuthenticationFactorAuthenticationResult;

                    interface ISecondaryAuthenticationFactorAuthenticationStageChangedEventArgs;

                    interface ISecondaryAuthenticationFactorAuthenticationStageInfo;

                    interface ISecondaryAuthenticationFactorAuthenticationStatics;

                    interface ISecondaryAuthenticationFactorDevicePresenceMonitoringRegistrationStatics;

                    interface ISecondaryAuthenticationFactorInfo;

                    interface ISecondaryAuthenticationFactorInfo2;

                    interface ISecondaryAuthenticationFactorRegistration;

                    interface ISecondaryAuthenticationFactorRegistrationResult;

                    interface ISecondaryAuthenticationFactorRegistrationStatics;

                    runtimeclass SecondaryAuthenticationFactorAuthentication;

                    runtimeclass SecondaryAuthenticationFactorAuthenticationResult;

                    runtimeclass SecondaryAuthenticationFactorAuthenticationStageChangedEventArgs;

                    runtimeclass SecondaryAuthenticationFactorAuthenticationStageInfo;

                    runtimeclass SecondaryAuthenticationFactorInfo;

                    runtimeclass SecondaryAuthenticationFactorRegistration;

                    runtimeclass SecondaryAuthenticationFactorRegistrationResult;
                }
            }
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace Security
    {
        namespace Authentication
        {
            namespace Identity
            {
                namespace Provider
                {
                    declare
                    {
                        interface Windows.Foundation.Collections.IIterable<Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorInfo*>;

                        interface Windows.Foundation.Collections.IIterator<Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorInfo*>;

                        interface Windows.Foundation.Collections.IVectorView<Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorInfo*>;

                        interface Windows.Foundation.EventHandler<Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorAuthenticationStageChangedEventArgs*>;

                        interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorInfo*>*>;

                        interface Windows.Foundation.IAsyncOperation<Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorAuthenticationResult*>;

                        interface Windows.Foundation.IAsyncOperation<Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorAuthenticationStageInfo*>;

                        interface Windows.Foundation.IAsyncOperation<Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorDevicePresenceMonitoringRegistrationStatus>;

                        interface Windows.Foundation.IAsyncOperation<Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorFinishAuthenticationStatus>;

                        interface Windows.Foundation.IAsyncOperation<Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorRegistrationResult*>;
                    }
                }
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Security
    {
        namespace Authentication
        {
            namespace Identity
            {
                namespace Provider
                {
                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    enum SecondaryAuthenticationFactorAuthenticationMessage
                    {
                        Invalid                   = 0,
                        SwipeUpWelcome            = 1,
                        TapWelcome                = 2,
                        DeviceNeedsAttention      = 3,
                        LookingForDevice          = 4,
                        LookingForDevicePluggedin = 5,
                        BluetoothIsDisabled       = 6,
                        NfcIsDisabled             = 7,
                        WiFiIsDisabled            = 8,
                        ExtraTapIsRequired        = 9,
                        DisabledByPolicy          = 10,
                        TapOnDeviceRequired       = 11,
                        HoldFinger                = 12,
                        ScanFinger                = 13,
                        UnauthorizedUser          = 14,
                        ReregisterRequired        = 15,
                        TryAgain                  = 16,
                        SayPassphrase             = 17,
                        ReadyToSignIn             = 18,
                        UseAnotherSignInOption    = 19
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    enum SecondaryAuthenticationFactorAuthenticationScenario
                    {
                        SignIn           = 0,
                        CredentialPrompt = 1
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    enum SecondaryAuthenticationFactorAuthenticationStage
                    {
                        NotStarted                 = 0,
                        WaitingForUserConfirmation = 1,
                        CollectingCredential       = 2,
                        SuspendingAuthentication   = 3,
                        CredentialCollected        = 4,
                        CredentialAuthenticated    = 5,
                        StoppingAuthentication     = 6,
                        ReadyForLock               = 7,
                        [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                        CheckingDevicePresence     = 8
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    enum SecondaryAuthenticationFactorAuthenticationStatus
                    {
                        Failed                     = 0,
                        Started                    = 1,
                        UnknownDevice              = 2,
                        DisabledByPolicy           = 3,
                        InvalidAuthenticationStage = 4
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [flags]
                    enum SecondaryAuthenticationFactorDeviceCapabilities
                    {
                        None                            = 0x0,
                        SecureStorage                   = 0x1,
                        StoreKeys                       = 0x2,
                        ConfirmUserIntentToAuthenticate = 0x4,
                        SupportSecureUserPresenceCheck  = 0x8,
                        TransmittedDataIsEncrypted      = 0x10,
                        HMacSha256                      = 0x20,
                        [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                        CloseRangeDataTransmission      = 0x40
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    enum SecondaryAuthenticationFactorDeviceFindScope
                    {
                        User     = 0,
                        AllUsers = 1
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    enum SecondaryAuthenticationFactorDevicePresence
                    {
                        Absent  = 0,
                        Present = 1
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    enum SecondaryAuthenticationFactorDevicePresenceMonitoringMode
                    {
                        Unsupported   = 0,
                        AppManaged    = 1,
                        SystemManaged = 2
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    enum SecondaryAuthenticationFactorDevicePresenceMonitoringRegistrationStatus
                    {
                        Unsupported      = 0,
                        Succeeded        = 1,
                        DisabledByPolicy = 2
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    enum SecondaryAuthenticationFactorFinishAuthenticationStatus
                    {
                        Failed       = 0,
                        Completed    = 1,
                        NonceExpired = 2
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    enum SecondaryAuthenticationFactorRegistrationStatus
                    {
                        Failed           = 0,
                        Started          = 1,
                        CanceledByUser   = 2,
                        PinSetupRequired = 3,
                        DisabledByPolicy = 4
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [exclusiveto(Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorAuthentication)]
                    [uuid(020A16E5-6A25-40A3-8C00-50A023F619D1)]
                    interface ISecondaryAuthenticationFactorAuthentication : IInspectable
                    {
                        [propget] HRESULT ServiceAuthenticationHmac([out] [retval] Windows.Storage.Streams.IBuffer** value);
                        [propget] HRESULT SessionNonce([out] [retval] Windows.Storage.Streams.IBuffer** value);
                        [propget] HRESULT DeviceNonce([out] [retval] Windows.Storage.Streams.IBuffer** value);
                        [propget] HRESULT DeviceConfigurationData([out] [retval] Windows.Storage.Streams.IBuffer** value);
                        HRESULT FinishAuthenticationAsync([in] Windows.Storage.Streams.IBuffer* deviceHmac, [in] Windows.Storage.Streams.IBuffer* sessionHmac, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorFinishAuthenticationStatus>** result);
                        HRESULT AbortAuthenticationAsync([in] HSTRING errorLogMessage, [out] [retval] Windows.Foundation.IAsyncAction** result);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [exclusiveto(Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorAuthenticationResult)]
                    [uuid(9CBB5987-EF6D-4BC2-BF49-4617515A0F9A)]
                    interface ISecondaryAuthenticationFactorAuthenticationResult : IInspectable
                    {
                        [propget] HRESULT Status([out] [retval] Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorAuthenticationStatus* value);
                        [propget] HRESULT Authentication([out] [retval] Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorAuthentication** value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [exclusiveto(Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorAuthenticationStageChangedEventArgs)]
                    [uuid(D4A5EE56-7291-4073-BC1F-CCB8F5AFDF96)]
                    interface ISecondaryAuthenticationFactorAuthenticationStageChangedEventArgs : IInspectable
                    {
                        [propget] HRESULT StageInfo([out] [retval] Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorAuthenticationStageInfo** value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [exclusiveto(Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorAuthenticationStageInfo)]
                    [uuid(56FEC28B-E8AA-4C0F-8E4C-A559E73ADD88)]
                    interface ISecondaryAuthenticationFactorAuthenticationStageInfo : IInspectable
                    {
                        [propget] HRESULT Stage([out] [retval] Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorAuthenticationStage* value);
                        [propget] HRESULT Scenario([out] [retval] Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorAuthenticationScenario* value);
                        [propget] HRESULT DeviceId([out] [retval] HSTRING* value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [exclusiveto(Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorAuthentication)]
                    [uuid(3F582656-28F8-4E0F-AE8C-5898B9AE2469)]
                    interface ISecondaryAuthenticationFactorAuthenticationStatics : IInspectable
                    {
                        HRESULT ShowNotificationMessageAsync([in] HSTRING deviceName, [in] Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorAuthenticationMessage message, [out] [retval] Windows.Foundation.IAsyncAction** result);
                        HRESULT StartAuthenticationAsync([in] HSTRING deviceId, [in] Windows.Storage.Streams.IBuffer* serviceAuthenticationNonce, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorAuthenticationResult*>** operation);
                        [eventadd] HRESULT AuthenticationStageChanged([in] Windows.Foundation.EventHandler<Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorAuthenticationStageChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT AuthenticationStageChanged([in] EventRegistrationToken token);
                        HRESULT GetAuthenticationStageInfoAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorAuthenticationStageInfo*>** result);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [exclusiveto(Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorRegistration)]
                    [uuid(90499A19-7EF2-4523-951C-A417A24ACF93)]
                    interface ISecondaryAuthenticationFactorDevicePresenceMonitoringRegistrationStatics : IInspectable
                    {
                        [overload("RegisterDevicePresenceMonitoringAsync")] HRESULT RegisterDevicePresenceMonitoringAsync([in] HSTRING deviceId, [in] HSTRING deviceInstancePath, [in] Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorDevicePresenceMonitoringMode monitoringMode, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorDevicePresenceMonitoringRegistrationStatus>** operation);
                        [overload("RegisterDevicePresenceMonitoringAsync")] HRESULT RegisterDevicePresenceMonitoringWithNewDeviceAsync([in] HSTRING deviceId, [in] HSTRING deviceInstancePath, [in] Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorDevicePresenceMonitoringMode monitoringMode, [in] HSTRING deviceFriendlyName, [in] HSTRING deviceModelNumber, [in] Windows.Storage.Streams.IBuffer* deviceConfigurationData, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorDevicePresenceMonitoringRegistrationStatus>** operation);
                        HRESULT UnregisterDevicePresenceMonitoringAsync([in] HSTRING deviceId, [out] [retval] Windows.Foundation.IAsyncAction** result);
                        HRESULT IsDevicePresenceMonitoringSupported([out] [retval] boolean* value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [exclusiveto(Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorInfo)]
                    [uuid(1E2BA861-8533-4FCE-839B-ECB72410AC14)]
                    interface ISecondaryAuthenticationFactorInfo : IInspectable
                    {
                        [propget] HRESULT DeviceId([out] [retval] HSTRING* deviceId);
                        [propget] HRESULT DeviceFriendlyName([out] [retval] HSTRING* value);
                        [propget] HRESULT DeviceModelNumber([out] [retval] HSTRING* value);
                        [propget] HRESULT DeviceConfigurationData([out] [retval] Windows.Storage.Streams.IBuffer** value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [exclusiveto(Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorInfo)]
                    [uuid(14D981A3-FC26-4FF7-ABC3-48E82A512A0A)]
                    interface ISecondaryAuthenticationFactorInfo2 : IInspectable
                        requires
                            Windows.Security.Authentication.Identity.Provider.ISecondaryAuthenticationFactorInfo
                    {
                        [propget] HRESULT PresenceMonitoringMode([out] [retval] Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorDevicePresenceMonitoringMode* value);
                        HRESULT UpdateDevicePresenceAsync([in] Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorDevicePresence presenceState, [out] [retval] Windows.Foundation.IAsyncAction** result);
                        [propget] HRESULT IsAuthenticationSupported([out] [retval] boolean* value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [exclusiveto(Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorRegistration)]
                    [uuid(9F4CBBB4-8CBA-48B0-840D-DBB22A54C678)]
                    interface ISecondaryAuthenticationFactorRegistration : IInspectable
                    {
                        HRESULT FinishRegisteringDeviceAsync([in] Windows.Storage.Streams.IBuffer* deviceConfigurationData, [out] [retval] Windows.Foundation.IAsyncAction** result);
                        HRESULT AbortRegisteringDeviceAsync([in] HSTRING errorLogMessage, [out] [retval] Windows.Foundation.IAsyncAction** result);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [exclusiveto(Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorRegistrationResult)]
                    [uuid(A4FE35F0-ADE3-4981-AF6B-EC195921682A)]
                    interface ISecondaryAuthenticationFactorRegistrationResult : IInspectable
                    {
                        [propget] HRESULT Status([out] [retval] Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorRegistrationStatus* value);
                        [propget] HRESULT Registration([out] [retval] Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorRegistration** value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [exclusiveto(Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorRegistration)]
                    [uuid(1ADF0F65-E3B7-4155-997F-B756EF65BEBA)]
                    interface ISecondaryAuthenticationFactorRegistrationStatics : IInspectable
                    {
                        HRESULT RequestStartRegisteringDeviceAsync([in] HSTRING deviceId, [in] Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorDeviceCapabilities capabilities, [in] HSTRING deviceFriendlyName, [in] HSTRING deviceModelNumber, [in] Windows.Storage.Streams.IBuffer* deviceKey, [in] Windows.Storage.Streams.IBuffer* mutualAuthenticationKey, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorRegistrationResult*>** operation);
                        HRESULT FindAllRegisteredDeviceInfoAsync([in] Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorDeviceFindScope queryType, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Security.Authentication.Identity.Provider.SecondaryAuthenticationFactorInfo*>*>** deviceInfoList);
                        HRESULT UnregisterDeviceAsync([in] HSTRING deviceId, [out] [retval] Windows.Foundation.IAsyncAction** result);
                        HRESULT UpdateDeviceConfigurationDataAsync([in] HSTRING deviceId, [in] Windows.Storage.Streams.IBuffer* deviceConfigurationData, [out] [retval] Windows.Foundation.IAsyncAction** result);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [marshaling_behavior(agile)]
                    [static(Windows.Security.Authentication.Identity.Provider.ISecondaryAuthenticationFactorAuthenticationStatics, Windows.Foundation.UniversalApiContract, 3.0)]
                    [threading(both)]
                    runtimeclass SecondaryAuthenticationFactorAuthentication
                    {
                        [default] interface Windows.Security.Authentication.Identity.Provider.ISecondaryAuthenticationFactorAuthentication;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    runtimeclass SecondaryAuthenticationFactorAuthenticationResult
                    {
                        [default] interface Windows.Security.Authentication.Identity.Provider.ISecondaryAuthenticationFactorAuthenticationResult;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    runtimeclass SecondaryAuthenticationFactorAuthenticationStageChangedEventArgs
                    {
                        [default] interface Windows.Security.Authentication.Identity.Provider.ISecondaryAuthenticationFactorAuthenticationStageChangedEventArgs;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    runtimeclass SecondaryAuthenticationFactorAuthenticationStageInfo
                    {
                        [default] interface Windows.Security.Authentication.Identity.Provider.ISecondaryAuthenticationFactorAuthenticationStageInfo;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    runtimeclass SecondaryAuthenticationFactorInfo
                    {
                        [default] interface Windows.Security.Authentication.Identity.Provider.ISecondaryAuthenticationFactorInfo;
                        [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Security.Authentication.Identity.Provider.ISecondaryAuthenticationFactorInfo2;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [marshaling_behavior(agile)]
                    [static(Windows.Security.Authentication.Identity.Provider.ISecondaryAuthenticationFactorDevicePresenceMonitoringRegistrationStatics, Windows.Foundation.UniversalApiContract, 4.0)]
                    [static(Windows.Security.Authentication.Identity.Provider.ISecondaryAuthenticationFactorRegistrationStatics, Windows.Foundation.UniversalApiContract, 3.0)]
                    [threading(both)]
                    runtimeclass SecondaryAuthenticationFactorRegistration
                    {
                        [default] interface Windows.Security.Authentication.Identity.Provider.ISecondaryAuthenticationFactorRegistration;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    runtimeclass SecondaryAuthenticationFactorRegistrationResult
                    {
                        [default] interface Windows.Security.Authentication.Identity.Provider.ISecondaryAuthenticationFactorRegistrationResult;
                    }
                }
            }
        }
    }
}
