
#################
OAuth2TokenConfig
#################


****
NAME
****


Kernel::System::OAuth2TokenConfig - OAuth2TokenConfig lib


********
SYNOPSIS
********


All OAuth2TokenConfig functions


****************
PUBLIC INTERFACE
****************


new()
=====


create an object


.. code-block:: perl

     my $OAuth2TokenConfigObject = $Kernel::OM->Get('Kernel::System::OAuth2TokenConfig');



DataAdd()
=========


Add data to table.


.. code-block:: perl

     my $Success = $OAuth2TokenConfigObject->DataAdd(
         ID         => '...',
         Name       => '...',
         Config     => '...',
         ValidID    => '...',
         CreateTime => '...',
         CreateBy   => '...',
         ChangeTime => '...',
         ChangeBy   => '...',
     );


Returns:


.. code-block:: perl

     my $Success = 1;



DataUpdate()
============


Update data attributes.


.. code-block:: perl

     my $Success = $OAuth2TokenConfigObject->DataUpdate(
         ID     => 1234,
         UserID => 1,
 
         # all other attributes are optional
         Name       => '...',
         Config     => '...',
         ValidID    => '...',
         CreateTime => '...',
         CreateBy   => '...',
         ChangeTime => '...',
         ChangeBy   => '...',
     );


Returns:


.. code-block:: perl

     my $Success = 1; # 1|0



DataGet()
=========


Get data attributes.


.. code-block:: perl

     my %Data = $OAuth2TokenConfigObject->DataGet(
         ID         => '...', # optional
         Name       => '...', # optional
         Config     => '...', # optional
         ValidID    => '...', # optional
         CreateTime => '...', # optional
         CreateBy   => '...', # optional
         ChangeTime => '...', # optional
         ChangeBy   => '...', # optional
     );


Returns:


.. code-block:: perl

     my %Data = (
         ID         => '...',
         Name       => '...',
         Config     => '...',
         ValidID    => '...',
         CreateTime => '...',
         CreateBy   => '...',
         ChangeTime => '...',
         ChangeBy   => '...',
     );



DataListGet()
=============


Get list data with attributes.


.. code-block:: perl

     my @Data = $OAuth2TokenConfigObject->DataListGet(
         ID         => '...', # optional
         Name       => '...', # optional
         Config     => '...', # optional
         ValidID    => '...', # optional
         CreateTime => '...', # optional
         CreateBy   => '...', # optional
         ChangeTime => '...', # optional
         ChangeBy   => '...', # optional
     );


Returns:


.. code-block:: perl

     my @Data = (
         {
             ID         => '...',
             Name       => '...',
             Config     => '...',
             ValidID    => '...',
             CreateTime => '...',
             CreateBy   => '...',
             ChangeTime => '...',
             ChangeBy   => '...',
         },
         # ...
     );



DataDelete()
============


Remove data from table.


.. code-block:: perl

     my $Success = $OAuth2TokenConfigObject->DataDelete(
         ID         => '...', # optional
         Name       => '...', # optional
         Config     => '...', # optional
         ValidID    => '...', # optional
         CreateTime => '...', # optional
         CreateBy   => '...', # optional
         ChangeTime => '...', # optional
         ChangeBy   => '...', # optional
     );


Returns:


.. code-block:: perl

     my $Success = 1;



DataSearch()
============


Search for value in defined attributes.


.. code-block:: perl

     my %Data = $OAuth2TokenConfigObject->DataSearch(
         Search     => 'test*test',
         ID         => '...', # optional
         Name       => '...', # optional
         Config     => '...', # optional
         ValidID    => '...', # optional
         CreateTime => '...', # optional
         CreateBy   => '...', # optional
         ChangeTime => '...', # optional
         ChangeBy   => '...', # optional
     );


Returns:


.. code-block:: perl

     my %Data = (
         '1' => {
             ID         => '...',
             Name       => '...',
             Config     => '...',
             ValidID    => '...',
             CreateTime => '...',
             CreateBy   => '...',
             ChangeTime => '...',
             ChangeBy   => '...',
         },
         # ...
     );



InitConfig()
============


init config for object


.. code-block:: perl

     my $Success = $OAuth2TokenConfigObject->InitConfig();


Returns:


.. code-block:: perl

     my $Success = 1;



UsedOAuth2TokenConfigListGet()
==============================


DEPRECATED. Remove in Znuny 6.5.

Returns a list of used OAuth2 token configs as array.


.. code-block:: perl

     my @UsedOAuth2TokenConfigListGet = $OAuth2TokenConfigObject->UsedOAuth2TokenConfigListGet(
         Scope => 'MailAccount'      # optional, default 'undef', (MailAccount);
     );


Returns:


.. code-block:: perl

     my @UsedOAuth2TokenConfigListGet = (
         {
             ID      => 1,
             Scope   => 'MailAccount',
             ScopeID => '1',
             Name    => 'Google Mail Token Config',
             Config  => {
                 ClientID      => 2,
                 Scope         => https://mail.google.com/,
                 ClientSecret  => 3,
                 TemplateName  => Google Mail,
                 Notifications => {
                     NotifyOnExpiredRefreshToken => 1,
                     NotifyOnExpiredToken        => 1,
                 },
             },
             ValidID    => 1,
             CreateTime => 2016-04-16 12:34:56,
             CreateBy   => 1,
             ChangeTime => 2016-04-16 12:34:56,
             ChangeBy   => 1,
         },
     );



IsOAuth2TokenConfigInUse()
==========================


Checks if the token config with the given ID is in use (e.g. mail account, web service, etc.).


.. code-block:: perl

     my $IsInUse = $OAuth2TokenConfigObject->IsOAuth2TokenConfigInUse(
         ID => 3,
     );
 
     Returns true value if in use.



IsAuthFlowSupported()
=====================



.. code-block:: perl

     Checks if the given auth flow is supported.
 
     my $AuthFlowIsSupported = $OAuth2TokenConfigObject->IsAuthFlowSupported(
         AuthFlow => 'AuthorizationCode', # or 'ClientCredentials'
     );
 
     Returns true value if given auth flow is supported.




