# 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.item import Item  # noqa: E501
from akeyless.rest import ApiException

class TestItem(unittest.TestCase):
    """Item unit test stubs"""

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def make_instance(self, include_optional):
        """Test Item
            include_option is a boolean, when False only required
            params are included, when True both required and
            optional params are included """
        # model = akeyless.models.item.Item()  # noqa: E501
        if include_optional :
            return Item(
                auto_rotate = True, 
                cert_issuer_signer_key_name = '0', 
                certificate_issue_details = akeyless.models.certificate_issue_info_defines_certificate_issuer_info/.CertificateIssueInfo defines Certificate Issuer info.(
                    cert_issuer_type = '0', 
                    max_ttl = 56, 
                    pki_cert_issuer_details = akeyless.models.pki_certificate_issue_details_defines_pki_certificate_details/.PKICertificateIssueDetails defines PKI certificate details.(
                        allow_any_name = True, 
                        allow_subdomains = True, 
                        allowed_domains_list = [
                            '0'
                            ], 
                        allowed_uri_sans = [
                            '0'
                            ], 
                        client_flag = True, 
                        code_signing_flag = True, 
                        country = [
                            '0'
                            ], 
                        enforce_hostnames = True, 
                        key_bits = 56, 
                        key_type = '0', 
                        key_usage_list = [
                            '0'
                            ], 
                        locality = [
                            '0'
                            ], 
                        not_before_duration = 56, 
                        organization_list = [
                            '0'
                            ], 
                        organization_unit_list = [
                            '0'
                            ], 
                        postal_code = [
                            '0'
                            ], 
                        province = [
                            '0'
                            ], 
                        require_cn = True, 
                        server_flag = True, 
                        street_address = [
                            '0'
                            ], ), 
                    ssh_cert_issuer_details = akeyless.models.ssh_certificate_issue_details_defines_ssh_certificate_details/.SSHCertificateIssueDetails defines SSH certificate details.(
                        allowed_domains = [
                            '0'
                            ], 
                        allowed_user_key_lengths = {
                            'key' : 56
                            }, 
                        allowed_users = [
                            '0'
                            ], 
                        cert_type = 56, 
                        critical_options = {
                            'key' : '0'
                            }, 
                        extensions = {
                            'key' : '0'
                            }, 
                        principals = [
                            '0'
                            ], 
                        static_key_id = '0', ), ), 
                certificates = '0', 
                client_permissions = [
                    '0'
                    ], 
                deletion_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                is_enabled = True, 
                item_general_info = akeyless.models.item_general_info_defines_item_general_info/.ItemGeneralInfo defines item general info.(
                    cert_issue_details = akeyless.models.certificate_issue_info_defines_certificate_issuer_info/.CertificateIssueInfo defines Certificate Issuer info.(
                        cert_issuer_type = '0', 
                        max_ttl = 56, 
                        pki_cert_issuer_details = akeyless.models.pki_certificate_issue_details_defines_pki_certificate_details/.PKICertificateIssueDetails defines PKI certificate details.(
                            allow_any_name = True, 
                            allow_subdomains = True, 
                            allowed_domains_list = [
                                '0'
                                ], 
                            allowed_uri_sans = [
                                '0'
                                ], 
                            client_flag = True, 
                            code_signing_flag = True, 
                            country = [
                                '0'
                                ], 
                            enforce_hostnames = True, 
                            key_bits = 56, 
                            key_type = '0', 
                            key_usage_list = [
                                '0'
                                ], 
                            locality = [
                                '0'
                                ], 
                            not_before_duration = 56, 
                            organization_list = [
                                '0'
                                ], 
                            organization_unit_list = [
                                '0'
                                ], 
                            postal_code = [
                                '0'
                                ], 
                            province = [
                                '0'
                                ], 
                            require_cn = True, 
                            server_flag = True, 
                            street_address = [
                                '0'
                                ], ), 
                        ssh_cert_issuer_details = akeyless.models.ssh_certificate_issue_details_defines_ssh_certificate_details/.SSHCertificateIssueDetails defines SSH certificate details.(
                            allowed_domains = [
                                '0'
                                ], 
                            allowed_user_key_lengths = {
                                'key' : 56
                                }, 
                            allowed_users = [
                                '0'
                                ], 
                            cert_type = 56, 
                            critical_options = {
                                'key' : '0'
                                }, 
                            extensions = {
                                'key' : '0'
                                }, 
                            principals = [
                                '0'
                                ], 
                            static_key_id = '0', ), ), 
                    dynamic_secret_producer_details = akeyless.models.dynamic_secret_producer_info.DynamicSecretProducerInfo(
                        producer_status = '0', 
                        producer_type = '0', ), ), 
                item_metadata = '0', 
                item_name = '0', 
                item_size = 56, 
                item_state = '0', 
                item_tags = [
                    '0'
                    ], 
                item_type = '0', 
                item_versions = [
                    akeyless.models.item_version_describes_an_item_version_in_akeyless/.ItemVersion describes an item version in AKEYLESS.(
                        creation_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                        deletion_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                        item_version_state = '0', 
                        protection_key_name = '0', 
                        version = 56, 
                        with_customer_fragment = True, )
                    ], 
                last_version = 56, 
                next_rotation_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                producer_status = '0', 
                protection_key_name = '0', 
                public_value = '0', 
                rotation_interval = 56, 
                with_customer_fragment = True
            )
        else :
            return Item(
        )

    def testItem(self):
        """Test Item"""
        inst_req_only = self.make_instance(include_optional=False)
        inst_req_and_optional = self.make_instance(include_optional=True)


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