async def METHOD_NAME(
    azure_ad_organization: AzureADOrganization,
    username: str,
    mail_nickname: Optional[str],
    display_name: str,
) -> Optional[UserTemplateProperties]:
    """
    Create a new user in Azure AD.
    Args:
    - azure_ad_organization (AzureADOrganization): The Azure AD organization to update the user in.
    - username: The name of the user to create.
    - mail_nickname: The mail alias for the user.
    - display_name: The name to display in the address book for the user.
    Returns:
    - An instance of the `UserTemplateProperties` class, representing the created user.
    """
    if ctx.execute:
        log.warning(
            "request data",
            request_data={
                "accountEnabled": True,
                "displayName": display_name,
                "mailNickname": mail_nickname,
                "userPrincipalName": username,
            },
        )
        user = await azure_ad_organization.post(
            "users",
            json={
                "accountEnabled": True,
                "displayName": display_name,
                "mailNickname": mail_nickname,
                "userPrincipalName": username,
                "passwordProfile": {
                    "forceChangePasswordNextSignIn": True,
                    "forceChangePasswordNextSignInWithMfa": azure_ad_organization.require_user_mfa_on_create,
                    "password": secrets.token_urlsafe(15),
                },
            },
        )
        return UserTemplateProperties.from_azure_response(user)