# coding: utf-8

"""
    Akeyless API

    The purpose of this application is to provide access to Akeyless API.  # noqa: E501

    The version of the OpenAPI document: 2.0
    Contact: support@akeyless.io
    Generated by: https://openapi-generator.tech
"""


from __future__ import absolute_import

import unittest
import datetime

import akeyless
from akeyless.models.akeyless_gateway_config import AkeylessGatewayConfig  # noqa: E501
from akeyless.rest import ApiException

class TestAkeylessGatewayConfig(unittest.TestCase):
    """AkeylessGatewayConfig unit test stubs"""

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def make_instance(self, include_optional):
        """Test AkeylessGatewayConfig
            include_option is a boolean, when False only required
            params are included, when True both required and
            optional params are included """
        # model = akeyless.models.akeyless_gateway_config.AkeylessGatewayConfig()  # noqa: E501
        if include_optional :
            return AkeylessGatewayConfig(
                admins = akeyless.models.admins_config_part.AdminsConfigPart(
                    admins = [
                        '0'
                        ], ), 
                cache = akeyless.models.cache_config_part.CacheConfigPart(
                    cache_enable = True, 
                    cache_ttl = '0', 
                    proactive_cache_dump_interval = '0', 
                    proactive_cache_enable = True, 
                    proactive_cache_minimum_fetching_time = '0', ), 
                cf = akeyless.models.cf_config_part.CFConfigPart(
                    customer_fragements = {
                        'key' : '0'
                        }, ), 
                config_protection_key_name = '0', 
                general = akeyless.models.general_config_part.GeneralConfigPart(
                    akeyless_url = '0', 
                    api_token_ttl = '0', 
                    enable_tls = True, 
                    enable_tls_configure = True, 
                    enable_tls_curl = True, 
                    enable_tls_hvp = True, 
                    tcp_port = '0', 
                    tls_cert = '0', 
                    tls_key = '0', ), 
                ldap = akeyless.models.ldap_config_part.LdapConfigPart(
                    ldap_access_id = '0', 
                    ldap_anonymous_search = True, 
                    ldap_bind_dn = '0', 
                    ldap_bind_password = '0', 
                    ldap_cert = '0', 
                    ldap_enable = True, 
                    ldap_group_attr = '0', 
                    ldap_group_dn = '0', 
                    ldap_group_filter = '0', 
                    ldap_private_key = '0', 
                    ldap_token_expiration = '0', 
                    ldap_url = '0', 
                    ldap_user_attr = '0', 
                    ldap_user_dn = '0', ), 
                leadership = akeyless.models.leadership_config_part.LeadershipConfigPart(
                    open_leadership = [
                        56
                        ], ), 
                log_forwarding = akeyless.models.log_forwarding_config_part.LogForwardingConfigPart(
                    elasticsearch_config = akeyless.models.elasticsearch_log_forwarding_config.ElasticsearchLogForwardingConfig(
                        elasticsearch_host = '0', 
                        elasticsearch_index = '0', 
                        elasticsearch_nodes = '0', ), 
                    logan_enable = True, 
                    logan_url = '0', 
                    logstash_config = akeyless.models.logstash_log_forwarding_config.LogstashLogForwardingConfig(
                        logstash_dns = '0', 
                        logstash_protocol = '0', ), 
                    logz_io_config = akeyless.models.logz_io_log_forwarding_config.LogzIoLogForwardingConfig(
                        target_logz_io_protocol = '0', 
                        target_logz_io_token = '0', ), 
                    pull_interval_sec = '0', 
                    splunk_config = akeyless.models.splunk_log_forwarding_config.SplunkLogForwardingConfig(
                        splunk_index = '0', 
                        splunk_source = '0', 
                        splunk_sourcetype = '0', 
                        splunk_token = '0', 
                        splunk_url = '0', ), 
                    syslog_config = akeyless.models.syslog_log_forwarding_config.SyslogLogForwardingConfig(
                        syslog_host = '0', 
                        syslog_network = '0', 
                        syslog_target_tag = '0', ), 
                    target_log_type = '0', ), 
                migrations = akeyless.models.migrations_config_part.MigrationsConfigPart(
                    aws_secrets_migrations = [
                        akeyless.models.aws_secrets_migration.AWSSecretsMigration(
                            general = akeyless.models.migration_general.MigrationGeneral(
                                id = '0', 
                                name = '0', 
                                prefix = '0', 
                                protection_key = '0', ), 
                            payload = akeyless.models.aws_payload.AWSPayload(
                                key = '0', 
                                region = '0', 
                                secret = '0', ), )
                        ], 
                    azure_kv_migrations = [
                        akeyless.models.azure_key_vault_migration.AzureKeyVaultMigration()
                        ], 
                    hashi_migrations = [
                        akeyless.models.hashi_migration.HashiMigration()
                        ], 
                    k8s_migrations = [
                        akeyless.models.k8_s_migration.K8SMigration()
                        ], ), 
                producers = akeyless.models.producers_config_part.ProducersConfigPart(
                    producers = [
                        akeyless.models.producer.Producer(
                            active = True, 
                            id = 56, 
                            name = '0', 
                            type = '0', )
                        ], ), 
                saml = akeyless.models.saml_config_part.SamlConfigPart(
                    open_id_connect_access_id = '0', 
                    saml_access_id = '0', ), 
                uidentity = akeyless.models.u_identity_config_part.UIdentityConfigPart(
                    uid_access_id = '0', 
                    uid_enable = True, 
                    uid_rotate_interval = '0', 
                    uid_status = '0', 
                    uid_token = '0', ), 
                version = 56
            )
        else :
            return AkeylessGatewayConfig(
        )

    def testAkeylessGatewayConfig(self):
        """Test AkeylessGatewayConfig"""
        inst_req_only = self.make_instance(include_optional=False)
        inst_req_and_optional = self.make_instance(include_optional=True)


if __name__ == '__main__':
    unittest.main()
