# coding: utf-8

"""
    Agilicus API

    Agilicus API endpoints  # noqa: E501

    The version of the OpenAPI document: 2021.04.08
    Contact: dev@agilicus.com
    Generated by: https://openapi-generator.tech
"""


from __future__ import absolute_import

import unittest
import datetime

import agilicus_api
from agilicus_api.models.api_key_introspect_response import APIKeyIntrospectResponse  # noqa: E501
from agilicus_api.rest import ApiException

class TestAPIKeyIntrospectResponse(unittest.TestCase):
    """APIKeyIntrospectResponse unit test stubs"""

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def make_instance(self, include_optional):
        """Test APIKeyIntrospectResponse
            include_option is a boolean, when False only required
            params are included, when True both required and
            optional params are included """
        # model = agilicus_api.models.api_key_introspect_response.APIKeyIntrospectResponse()  # noqa: E501
        if include_optional :
            return APIKeyIntrospectResponse(
                sub_org_results = [
                    agilicus_api.models.token.Token(
                        sub = '123', 
                        sub_email = 'foo@example.com', 
                        org = '123', 
                        root_org = '123', 
                        roles = {"app-1":["viewer"],"app-2":["owner"]}, 
                        jti = '123', 
                        iat = '0', 
                        exp = '0', 
                        hosts = [
                            agilicus_api.models.host_permissions.HostPermissions(
                                upstream_host = '0', 
                                app_id = '123', 
                                admin_org_id = '123', 
                                allowed_list = [
                                    agilicus_api.models.rendered_rule.RenderedRule(
                                        methods = [
                                            'get'
                                            ], 
                                        paths = [
                                            '0'
                                            ], 
                                        query_parameters = [
                                            agilicus_api.models.rendered_query_parameter.RenderedQueryParameter(
                                                name = '0', 
                                                exact_match = '0', )
                                            ], 
                                        body = agilicus_api.models.rendered_rule_body.RenderedRuleBody(
                                            json = [
                                                agilicus_api.models.json_body_constraint.JSONBodyConstraint(
                                                    name = '0', 
                                                    exact_match = '0', 
                                                    match_type = 'string', 
                                                    pointer = '/foo/0/a~1b/2', )
                                                ], ), )
                                    ], )
                            ], 
                        aud = [
                            '0'
                            ], 
                        session = '123', 
                        scopes = [
                            'urn:agilicus:users:owner'
                            ], )
                    ], 
                primary_token = agilicus_api.models.token.Token(
                    sub = '123', 
                    sub_email = 'foo@example.com', 
                    org = '123', 
                    root_org = '123', 
                    roles = {"app-1":["viewer"],"app-2":["owner"]}, 
                    jti = '123', 
                    iat = '0', 
                    exp = '0', 
                    hosts = [
                        agilicus_api.models.host_permissions.HostPermissions(
                            upstream_host = '0', 
                            app_id = '123', 
                            admin_org_id = '123', 
                            allowed_list = [
                                agilicus_api.models.rendered_rule.RenderedRule(
                                    methods = [
                                        'get'
                                        ], 
                                    paths = [
                                        '0'
                                        ], 
                                    query_parameters = [
                                        agilicus_api.models.rendered_query_parameter.RenderedQueryParameter(
                                            name = '0', 
                                            exact_match = '0', )
                                        ], 
                                    body = agilicus_api.models.rendered_rule_body.RenderedRuleBody(
                                        json = [
                                            agilicus_api.models.json_body_constraint.JSONBodyConstraint(
                                                name = '0', 
                                                exact_match = '0', 
                                                match_type = 'string', 
                                                pointer = '/foo/0/a~1b/2', )
                                            ], ), )
                                ], )
                        ], 
                    aud = [
                        '0'
                        ], 
                    session = '123', 
                    scopes = [
                        'urn:agilicus:users:owner'
                        ], ), 
                raw_token = '0'
            )
        else :
            return APIKeyIntrospectResponse(
                sub_org_results = [
                    agilicus_api.models.token.Token(
                        sub = '123', 
                        sub_email = 'foo@example.com', 
                        org = '123', 
                        root_org = '123', 
                        roles = {"app-1":["viewer"],"app-2":["owner"]}, 
                        jti = '123', 
                        iat = '0', 
                        exp = '0', 
                        hosts = [
                            agilicus_api.models.host_permissions.HostPermissions(
                                upstream_host = '0', 
                                app_id = '123', 
                                admin_org_id = '123', 
                                allowed_list = [
                                    agilicus_api.models.rendered_rule.RenderedRule(
                                        methods = [
                                            'get'
                                            ], 
                                        paths = [
                                            '0'
                                            ], 
                                        query_parameters = [
                                            agilicus_api.models.rendered_query_parameter.RenderedQueryParameter(
                                                name = '0', 
                                                exact_match = '0', )
                                            ], 
                                        body = agilicus_api.models.rendered_rule_body.RenderedRuleBody(
                                            json = [
                                                agilicus_api.models.json_body_constraint.JSONBodyConstraint(
                                                    name = '0', 
                                                    exact_match = '0', 
                                                    match_type = 'string', 
                                                    pointer = '/foo/0/a~1b/2', )
                                                ], ), )
                                    ], )
                            ], 
                        aud = [
                            '0'
                            ], 
                        session = '123', 
                        scopes = [
                            'urn:agilicus:users:owner'
                            ], )
                    ],
                primary_token = agilicus_api.models.token.Token(
                    sub = '123', 
                    sub_email = 'foo@example.com', 
                    org = '123', 
                    root_org = '123', 
                    roles = {"app-1":["viewer"],"app-2":["owner"]}, 
                    jti = '123', 
                    iat = '0', 
                    exp = '0', 
                    hosts = [
                        agilicus_api.models.host_permissions.HostPermissions(
                            upstream_host = '0', 
                            app_id = '123', 
                            admin_org_id = '123', 
                            allowed_list = [
                                agilicus_api.models.rendered_rule.RenderedRule(
                                    methods = [
                                        'get'
                                        ], 
                                    paths = [
                                        '0'
                                        ], 
                                    query_parameters = [
                                        agilicus_api.models.rendered_query_parameter.RenderedQueryParameter(
                                            name = '0', 
                                            exact_match = '0', )
                                        ], 
                                    body = agilicus_api.models.rendered_rule_body.RenderedRuleBody(
                                        json = [
                                            agilicus_api.models.json_body_constraint.JSONBodyConstraint(
                                                name = '0', 
                                                exact_match = '0', 
                                                match_type = 'string', 
                                                pointer = '/foo/0/a~1b/2', )
                                            ], ), )
                                ], )
                        ], 
                    aud = [
                        '0'
                        ], 
                    session = '123', 
                    scopes = [
                        'urn:agilicus:users:owner'
                        ], ),
        )

    def testAPIKeyIntrospectResponse(self):
        """Test APIKeyIntrospectResponse"""
        inst_req_only = self.make_instance(include_optional=False)
        inst_req_and_optional = self.make_instance(include_optional=True)


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