# coding: utf-8

"""
    Identity Security Cloud Beta API

    Use these APIs to interact with the Identity Security Cloud platform to achieve repeatable, automated processes with greater scalability. These APIs are in beta and are subject to change. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.

    The version of the OpenAPI document: 3.1.0-beta
    Generated by OpenAPI Generator (https://openapi-generator.tech)

    Do not edit the class manually.
"""  # noqa: E501


import unittest

from sailpoint.beta.models.role import Role

class TestRole(unittest.TestCase):
    """Role unit test stubs"""

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def make_instance(self, include_optional) -> Role:
        """Test Role
            include_optional is a boolean, when False only required
            params are included, when True both required and
            optional params are included """
        # uncomment below to create an instance of `Role`
        """
        model = Role()
        if include_optional:
            return Role(
                id = '2c918086749d78830174a1a40e121518',
                name = 'Role 2567',
                created = '2021-03-01T22:32:58.104Z',
                modified = '2021-03-02T20:22:28.104Z',
                description = 'Urna amet cursus pellentesque nisl orci maximus lorem nisl euismod fusce morbi placerat adipiscing maecenas nisi tristique et metus et lacus sed morbi nunc nisl maximus magna arcu varius sollicitudin elementum enim maecenas nisi id ipsum tempus fusce diam ipsum tortor.',
                owner = sailpoint.beta.models.owner_reference.OwnerReference(
                    type = 'IDENTITY', 
                    id = '2c9180a46faadee4016fb4e018c20639', 
                    name = 'support', ),
                access_profiles = [
                    sailpoint.beta.models.access_profile_ref.AccessProfileRef(
                        id = 'ff808081751e6e129f1518161919ecca', 
                        type = 'ACCESS_PROFILE', 
                        name = 'Access Profile 2567', )
                    ],
                entitlements = [
                    sailpoint.beta.models.entitlement_ref.EntitlementRef(
                        type = 'ENTITLEMENT', 
                        id = '2c91809773dee32014e13e122092014e', 
                        name = 'CN=entitlement.490efde5,OU=OrgCo,OU=ServiceDept,DC=HQAD,DC=local', )
                    ],
                membership = sailpoint.beta.models.role_membership_selector.RoleMembershipSelector(
                    type = 'IDENTITY_LIST', 
                    criteria = sailpoint.beta.models.role_criteria_level1.RoleCriteriaLevel1(
                        operation = 'EQUALS', 
                        key = sailpoint.beta.models.role_criteria_key.RoleCriteriaKey(
                            type = 'ACCOUNT', 
                            property = 'attribute.email', 
                            source_id = '2c9180867427f3a301745aec18211519', ), 
                        string_value = 'carlee.cert1c9f9b6fd@mailinator.com', 
                        children = [
                            sailpoint.beta.models.role_criteria_level2.RoleCriteriaLevel2(
                                string_value = 'carlee.cert1c9f9b6fd@mailinator.com', )
                            ], ), 
                    identities = [
                        sailpoint.beta.models.role_membership_identity.RoleMembershipIdentity(
                            id = '2c9180a46faadee4016fb4e018c20639', 
                            name = 'Thomas Edison', 
                            alias_name = 't.edison', )
                        ], ),
                legacy_membership_info = {type=IDENTITY_LIST},
                enabled = True,
                requestable = True,
                access_request_config = sailpoint.beta.models.requestability_for_role.RequestabilityForRole(
                    comments_required = True, 
                    denial_comments_required = True, 
                    reauthorization_required = True, 
                    approval_schemes = [
                        sailpoint.beta.models.approval_scheme_for_role.ApprovalSchemeForRole(
                            approver_type = 'GOVERNANCE_GROUP', 
                            approver_id = '46c79819-a69f-49a2-becb-12c971ae66c6', )
                        ], ),
                revocation_request_config = sailpoint.beta.models.revocability_for_role.RevocabilityForRole(
                    comments_required = False, 
                    denial_comments_required = False, 
                    approval_schemes = [
                        sailpoint.beta.models.approval_scheme_for_role.ApprovalSchemeForRole(
                            approver_type = 'GOVERNANCE_GROUP', 
                            approver_id = '46c79819-a69f-49a2-becb-12c971ae66c6', )
                        ], ),
                segments = [f7b1b8a3-5fed-4fd4-ad29-82014e137e19, 29cb6c06-1da8-43ea-8be4-b3125f248f2a],
                dimensional = True,
                dimension_refs = [
                    sailpoint.beta.models.dimension_ref.DimensionRef(
                        type = 'DIMENSION', 
                        id = '2c91808568c529c60168cca6f90c1313', 
                        name = 'Role 2', )
                    ],
                access_model_metadata = sailpoint.beta.models.attribute_dto_list.AttributeDTOList(
                    attributes = [{key=iscPrivacy, name=Privacy, multiselect=false, status=active, type=governance, objectTypes=[all], description=Specifies the level of privacy associated with an access item., values=[{value=public, name=Public, status=active}]}], )
            )
        else:
            return Role(
                name = 'Role 2567',
                owner = sailpoint.beta.models.owner_reference.OwnerReference(
                    type = 'IDENTITY', 
                    id = '2c9180a46faadee4016fb4e018c20639', 
                    name = 'support', ),
        )
        """

    def testRole(self):
        """Test Role"""
        # inst_req_only = self.make_instance(include_optional=False)
        # inst_req_and_optional = self.make_instance(include_optional=True)

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