# 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: 0.0.1
    Contact: support@akeyless.io
    Generated by: https://openapi-generator.tech
"""


from __future__ import absolute_import

import unittest
import datetime

import akeyless
from akeyless.models.auth_method import AuthMethod  # noqa: E501
from akeyless.rest import ApiException

class TestAuthMethod(unittest.TestCase):
    """AuthMethod unit test stubs"""

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def make_instance(self, include_optional):
        """Test AuthMethod
            include_option is a boolean, when False only required
            params are included, when True both required and
            optional params are included """
        # model = akeyless.models.auth_method.AuthMethod()  # noqa: E501
        if include_optional :
            return AuthMethod(
                access_info = akeyless.models.auth_method_access_info_includes_auth_method_access_information/.AuthMethodAccessInfo includes auth method access information.(
                    access_expires = 56, 
                    api_key_access_rules = akeyless.models.api_key_access_rules_is_a_set_of_rules_for_api_key_access_type/.APIKeyAccessRules is a set of rules for API Key access type.(
                        alg = '0', 
                        key = '0', ), 
                    aws_iam_access_rules = akeyless.models.awsiam_access_rules_contains_access_rules_specific_to_aws_iam/.AWSIAMAccessRules contains access rules specific to AWS IAM.(
                        account_id = [
                            '0'
                            ], 
                        arn = [
                            '0'
                            ], 
                        resource_id = [
                            '0'
                            ], 
                        role_id = [
                            '0'
                            ], 
                        role_name = [
                            '0'
                            ], 
                        sts_endpoint = '0', 
                        user_id = [
                            '0'
                            ], 
                        user_name = [
                            '0'
                            ], ), 
                    azure_ad_access_rules = akeyless.models.azure_ad_access_rules.AzureADAccessRules(
                        ad_endpoint = '0', 
                        bound_group_ids = [
                            '0'
                            ], 
                        bound_resource_groups = [
                            '0'
                            ], 
                        bound_resource_ids = [
                            '0'
                            ], 
                        bound_resource_names = [
                            '0'
                            ], 
                        bound_resource_providers = [
                            '0'
                            ], 
                        bound_resource_types = [
                            '0'
                            ], 
                        bound_service_principal_ids = [
                            '0'
                            ], 
                        bound_subscription_ids = [
                            '0'
                            ], 
                        bound_tenant_id = '0', 
                        issuer = '0', 
                        jwks_uri = '0', ), 
                    cidr_whitelist = '0', 
                    email_pass_access_rules = akeyless.models.email_pass_access_rules_is_a_set_of_rules_for_email_password_access_type/.EmailPassAccessRules is a set of rules for email password access type.(
                        alg = '0', 
                        email = '0', 
                        hash_pass = '0', ), 
                    huawei_access_rules = akeyless.models.huawei_access_rules_defines_access_rules_specific_to_huawei_authentication/.HuaweiAccessRules defines access rules specific to Huawei authentication.(
                        auth_endpoint = '0', 
                        domain_id = [
                            '0'
                            ], 
                        domain_name = [
                            '0'
                            ], 
                        tenant_id = [
                            '0'
                            ], 
                        tenant_name = [
                            '0'
                            ], ), 
                    ldap_access_rules = akeyless.models.ldap_access_rules_includes_access_rules_specific_to_ldap_authentication/.LDAPAccessRules includes access rules specific to LDAP authentication.(
                        key = '0', ), 
                    oauth2_access_rules = akeyless.models.o_auth2_access_rules.OAuth2AccessRules(
                        audience = '0', 
                        bound_claims = [
                            akeyless.models.o_auth2_custom_claim.OAuth2CustomClaim(
                                name = '0', 
                                values = [
                                    '0'
                                    ], )
                            ], 
                        bound_clients_id = [
                            '0'
                            ], 
                        issuer = '0', 
                        jwks_uri = '0', ), 
                    rules_type = '0', 
                    saml_access_rules = akeyless.models.saml_access_rules_defines_access_rules_specific_to_saml_authentication_method/.SAMLAccessRules defines access rules specific to SAML authentication method.(
                        bound_attributes = [
                            akeyless.models.saml_attribute_defines_an_attribute_of_saml_authentication/.SAMLAttribute defines an attribute of SAML authentication.(
                                name = '0', )
                            ], 
                        idp_metadata_url = '0', 
                        idp_metadata_xml = '0', ), 
                    universal_identity_access_rules = akeyless.models.universal_identity_access_rules_contains_access_rules_specific_to_universal_identity/.UniversalIdentityAccessRules contains access rules specific to Universal Identity.(
                        deny_inheritance = True, 
                        deny_rotate = True, 
                        ttl = 56, ), ), 
                account_id = '0', 
                auth_method_access_id = '0', 
                auth_method_name = '0', 
                auth_method_roles_assoc = [
                    akeyless.models.auth_method_role_association.AuthMethodRoleAssociation(
                        assoc_id = '0', 
                        auth_method_sub_claims = {
                            'key' : [
                                '0'
                                ]
                            }, 
                        role_name = '0', 
                        rules = akeyless.models.rules_are_a_part_of_akeyless_rbac/.Rules are a part of AKEYLESS RBAC.(
                            admin = True, 
                            path_rules = [
                                akeyless.models.path_rule_is_a_single_rule_used_in_akeyless_rbac/.PathRule is a single rule used in AKEYLESS RBAC.(
                                    capabilities = [
                                        '0'
                                        ], 
                                    path = '0', 
                                    type = '0', )
                                ], ), )
                    ], 
                client_permissions = [
                    '0'
                    ]
            )
        else :
            return AuthMethod(
        )

    def testAuthMethod(self):
        """Test AuthMethod"""
        inst_req_only = self.make_instance(include_optional=False)
        inst_req_and_optional = self.make_instance(include_optional=True)


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