Ejemplo n.º 1
0
    async def delete_factor(
            self, userId, factorId
    ):
        """
        Unenrolls an existing factor for the specified user, al
        lowing the user to enroll a new factor.
        Args:
            user_id {str}
            factor_id {str}
        """
        http_method = "delete".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/users/{userId}/factors/{factorId}
            """)

        body = {}
        headers = {}

        request, error = await self._request_executor.create_request(
            http_method, api_url, body, headers
        )

        if error:
            return (None, error)

        response, error = await self._request_executor\
            .execute(request)

        if error:
            return (response, error)

        return (response, None)
Ejemplo n.º 2
0
    async def delete_inline_hook(self, inlineHookId):
        """
        Deletes the Inline Hook matching the provided id. Once
        deleted, the Inline Hook is unrecoverable. As a safety
        precaution, only Inline Hooks with a status of INACTIVE
        are eligible for deletion.
        Args:
            inline_hook_id {str}
        """
        http_method = "delete".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/inlineHooks/{inlineHookId}
            """)

        body = {}
        headers = {}

        request, error = await self._request_executor.create_request(
            http_method, api_url, body, headers)

        if error:
            return (None, error)

        response, error = await self._request_executor\
            .execute(request)

        if error:
            return (response, error)

        return (response, None)
Ejemplo n.º 3
0
    async def deactivate_inline_hook(self, inlineHookId):
        """
        Deactivates the Inline Hook matching the provided id
        Args:
            inline_hook_id {str}
        Returns:
            InlineHook
        """
        http_method = "post".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/inlineHooks/{inlineHookId}/lifecycle
                /deactivate
            """)

        body = {}
        headers = {}

        request, error = await self._request_executor.create_request(
            http_method, api_url, body, headers)

        if error:
            return (None, None, error)

        response, error = await self._request_executor\
            .execute(request, InlineHook)

        if error:
            return (None, response, error)

        try:
            result = InlineHook(self.form_response_body(response.get_body()))
        except Exception as error:
            return (None, response, error)
        return (result, response, None)
Ejemplo n.º 4
0
    async def deactivate_policy(self, policyId, keep_empty_params=False):
        """
        Deactivates a policy.
        Args:
            policy_id {str}
        """
        http_method = "post".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/policies/{policyId}/lifecycle/deactivate
            """)

        body = {}
        headers = {}
        form = {}

        request, error = await self._request_executor.create_request(
            http_method,
            api_url,
            body,
            headers,
            form,
            keep_empty_params=keep_empty_params)

        if error:
            return (None, error)

        response, error = await self._request_executor\
            .execute(request)

        if error:
            return (response, error)

        return (response, None)
Ejemplo n.º 5
0
    async def list_event_hooks(self):
        """
        Args:
        Returns:
            list: Collection of EventHook instances.
        """
        http_method = "get".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/eventHooks
            """)

        body = {}
        headers = {}

        request, error = await self._request_executor.create_request(
            http_method, api_url, body, headers)

        if error:
            return (None, None, error)

        response, error = await self._request_executor\
            .execute(request, EventHook)

        if error:
            return (None, response, error)

        try:
            result = []
            for item in response.get_body():
                result.append(EventHook(self.form_response_body(item)))
        except Exception as error:
            return (None, response, error)
        return (result, response, None)
    async def add_app_instance_target_to_app_admin_role_given_to_group(
            self, groupId, roleId, appName, applicationId):
        """
        Add App Instance Target to App Administrator Role given
        to a Group
        Args:
            group_id {str}
            role_id {str}
            app_name {str}
            application_id {str}
        """
        http_method = "put".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/groups/{groupId}/roles/{roleId}/targets
                /catalog/apps/{appName}/{applicationId}
            """)

        body = {}
        headers = {}

        request, error = await self._request_executor.create_request(
            http_method, api_url, body, headers)

        if error:
            return (None, error)

        response, error = await self._request_executor\
            .execute(request)

        if error:
            return (response, error)

        return (response, None)
    async def refresh_session(self, sessionId):
        """
        Method for
        /api/v1/sessions/{sessionId}/lifecycle/refresh
        Args:
            session_id {str}
        Returns:
            Session
        """
        http_method = "post".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/sessions/{sessionId}/lifecycle/refresh
            """)

        body = {}
        headers = {}

        request, error = await self._request_executor.create_request(
            http_method, api_url, body, headers)

        if error:
            return (None, None, error)

        response, error = await self._request_executor\
            .execute(request, Session)

        if error:
            return (None, response, error)

        try:
            result = Session(self.form_response_body(response.get_body()))
        except Exception as error:
            return (None, response, error)
        return (result, response, None)
Ejemplo n.º 8
0
    async def deactivate_origin(self, trustedOriginId):
        """
        Args:
            trusted_origin_id {str}
        Returns:
            TrustedOrigin
        """
        http_method = "post".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/trustedOrigins/{trustedOriginId}/lifecycle
                /deactivate
            """)

        body = {}
        headers = {}

        request, error = await self._request_executor.create_request(
            http_method, api_url, body, headers)

        if error:
            return (None, None, error)

        response, error = await self._request_executor\
            .execute(request, TrustedOrigin)

        if error:
            return (None, response, error)

        try:
            result = TrustedOrigin(self.form_response_body(
                response.get_body()))
        except Exception as error:
            return (None, response, error)
        return (result, response, None)
Ejemplo n.º 9
0
    async def delete_identity_provider(self, idpId, keep_empty_params=False):
        """
        Removes an IdP from your organization.
        Args:
            idp_id {str}
        """
        http_method = "delete".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/idps/{idpId}
            """)

        body = {}
        headers = {}
        form = {}

        request, error = await self._request_executor.create_request(
            http_method,
            api_url,
            body,
            headers,
            form,
            keep_empty_params=keep_empty_params)

        if error:
            return (None, error)

        response, error = await self._request_executor\
            .execute(request)

        if error:
            return (response, error)

        return (response, None)
Ejemplo n.º 10
0
    async def revoke_csr_for_identity_provider(
            self, idpId, csrId
    ):
        """
        Revoke a Certificate Signing Request and delete the key
        pair from the IdP
        Args:
            idp_id {str}
            csr_id {str}
        """
        http_method = "delete".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/idps/{idpId}/credentials/csrs/{csrId}
            """)

        body = {}
        headers = {}

        request, error = await self._request_executor.create_request(
            http_method, api_url, body, headers
        )

        if error:
            return (None, error)

        response, error = await self._request_executor\
            .execute(request)

        if error:
            return (response, error)

        return (response, None)
Ejemplo n.º 11
0
    async def delete_origin(self, trustedOriginId):
        """
        Args:
            trusted_origin_id {str}
        """
        http_method = "delete".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/trustedOrigins/{trustedOriginId}
            """)

        body = {}
        headers = {}

        request, error = await self._request_executor.create_request(
            http_method, api_url, body, headers)

        if error:
            return (None, error)

        response, error = await self._request_executor\
            .execute(request)

        if error:
            return (response, error)

        return (response, None)
Ejemplo n.º 12
0
    async def delete_identity_provider_key(
            self, keyId
    ):
        """
        Deletes a specific IdP Key Credential by `kid` if it is
        not currently being used by an Active or Inactive IdP.
        Args:
            key_id {str}
        """
        http_method = "delete".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/idps/credentials/keys/{keyId}
            """)

        body = {}
        headers = {}

        request, error = await self._request_executor.create_request(
            http_method, api_url, body, headers
        )

        if error:
            return (None, error)

        response, error = await self._request_executor\
            .execute(request)

        if error:
            return (response, error)

        return (response, None)
Ejemplo n.º 13
0
    async def unlink_user_from_identity_provider(
            self, idpId, userId
    ):
        """
        Removes the link between the Okta user and the IdP user
        .
        Args:
            idp_id {str}
            user_id {str}
        """
        http_method = "delete".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/idps/{idpId}/users/{userId}
            """)

        body = {}
        headers = {}

        request, error = await self._request_executor.create_request(
            http_method, api_url, body, headers
        )

        if error:
            return (None, error)

        response, error = await self._request_executor\
            .execute(request)

        if error:
            return (response, error)

        return (response, None)
Ejemplo n.º 14
0
    async def update_org_logo(self, file, keep_empty_params=False):
        """
        Updates the logo for your organization.
        Args:
        """
        http_method = "post".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/org/logo
            """)

        body = {}
        headers = {}
        form = {
            "file": file,
        }

        request, error = await self._request_executor.create_request(
            http_method,
            api_url,
            body,
            headers,
            form,
            keep_empty_params=keep_empty_params)

        if error:
            return (None, error)

        response, error = await self._request_executor\
            .execute(request)

        if error:
            return (response, error)

        return (response, None)
    async def get_role(self, groupId, roleId):
        """
        Args:
            group_id {str}
            role_id {str}
        Returns:
            Role
        """
        http_method = "get".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/groups/{groupId}/roles/{roleId}
            """)

        body = {}
        headers = {}

        request, error = await self._request_executor.create_request(
            http_method, api_url, body, headers)

        if error:
            return (None, None, error)

        response, error = await self._request_executor\
            .execute(request, Role)

        if error:
            return (None, response, error)

        try:
            result = Role(self.form_response_body(response.get_body()))
        except Exception as error:
            return (None, response, error)
        return (result, response, None)
Ejemplo n.º 16
0
    async def delete_policy(self, policyId):
        """
        Removes a policy.
        Args:
            policy_id {str}
        """
        http_method = "delete".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/policies/{policyId}
            """)

        body = {}
        headers = {}

        request, error = await self._request_executor.create_request(
            http_method, api_url, body, headers)

        if error:
            return (None, error)

        response, error = await self._request_executor\
            .execute(request)

        if error:
            return (response, error)

        return (response, None)
    async def remove_app_target_from_application_admin_role_given_to_group(
            self, groupId, roleId, appName):
        """
        Args:
            group_id {str}
            role_id {str}
            app_name {str}
        """
        http_method = "delete".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/groups/{groupId}/roles/{roleId}/targets
                /catalog/apps/{appName}
            """)

        body = {}
        headers = {}

        request, error = await self._request_executor.create_request(
            http_method, api_url, body, headers)

        if error:
            return (None, error)

        response, error = await self._request_executor\
            .execute(request)

        if error:
            return (response, error)

        return (response, None)
Ejemplo n.º 18
0
    async def deactivate_policy_rule(self, policyId, ruleId):
        """
        Deactivates a policy rule.
        Args:
            policy_id {str}
            rule_id {str}
        """
        http_method = "post".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/policies/{policyId}/rules/{ruleId}
                /lifecycle/deactivate
            """)

        body = {}
        headers = {}

        request, error = await self._request_executor.create_request(
            http_method, api_url, body, headers)

        if error:
            return (None, error)

        response, error = await self._request_executor\
            .execute(request)

        if error:
            return (response, error)

        return (response, None)
    async def add_group_target_to_group_administrator_role_for_group(
            self, groupId, roleId, targetGroupId):
        """
        Method for
        /api/v1/groups/{groupId}/roles/{roleId}/targets/groups/
        {targetGroupId}
        Args:
            group_id {str}
            role_id {str}
            target_group_id {str}
        """
        http_method = "put".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/groups/{groupId}/roles/{roleId}/targets
                /groups/{targetGroupId}
            """)

        body = {}
        headers = {}

        request, error = await self._request_executor.create_request(
            http_method, api_url, body, headers)

        if error:
            return (None, error)

        response, error = await self._request_executor\
            .execute(request)

        if error:
            return (response, error)

        return (response, None)
    async def add_user_to_group(self, groupId, userId):
        """
        Adds a user to a group with 'OKTA_GROUP' type.
        Args:
            group_id {str}
            user_id {str}
        """
        http_method = "put".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/groups/{groupId}/users/{userId}
            """)

        body = {}
        headers = {}

        request, error = await self._request_executor.create_request(
            http_method, api_url, body, headers)

        if error:
            return (None, error)

        response, error = await self._request_executor\
            .execute(request)

        if error:
            return (response, error)

        return (response, None)
    async def end_session(self, sessionId):
        """
        Method for
        /api/v1/sessions/{sessionId}
        Args:
            session_id {str}
        """
        http_method = "delete".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/sessions/{sessionId}
            """)

        body = {}
        headers = {}

        request, error = await self._request_executor.create_request(
            http_method, api_url, body, headers)

        if error:
            return (None, error)

        response, error = await self._request_executor\
            .execute(request)

        if error:
            return (response, error)

        return (response, None)
    async def deactivate_group_rule(self, ruleId):
        """
        Deactivates a specific group rule by id from your organ
        ization
        Args:
            rule_id {str}
        """
        http_method = "post".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/groups/rules/{ruleId}/lifecycle/deactivate
            """)

        body = {}
        headers = {}

        request, error = await self._request_executor.create_request(
            http_method, api_url, body, headers)

        if error:
            return (None, error)

        response, error = await self._request_executor\
            .execute(request)

        if error:
            return (response, error)

        return (response, None)
Ejemplo n.º 23
0
    async def verify_event_hook(self, eventHookId):
        """
        Args:
            event_hook_id {str}
        Returns:
            EventHook
        """
        http_method = "post".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/eventHooks/{eventHookId}/lifecycle/verify
            """)

        body = {}
        headers = {}

        request, error = await self._request_executor.create_request(
            http_method, api_url, body, headers)

        if error:
            return (None, None, error)

        response, error = await self._request_executor\
            .execute(request, EventHook)

        if error:
            return (None, response, error)

        try:
            result = EventHook(self.form_response_body(response.get_body()))
        except Exception as error:
            return (None, response, error)
        return (result, response, None)
    async def delete_group(self, groupId):
        """
        Removes a group with `OKTA_GROUP` type from your organi
        zation.
        Args:
            group_id {str}
        """
        http_method = "delete".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/groups/{groupId}
            """)

        body = {}
        headers = {}

        request, error = await self._request_executor.create_request(
            http_method, api_url, body, headers)

        if error:
            return (None, error)

        response, error = await self._request_executor\
            .execute(request)

        if error:
            return (response, error)

        return (response, None)
    async def get_application_user_schema(self, appInstanceId):
        """
        Fetches the Schema for an App User
        Args:
            app_instance_id {str}
        Returns:
            UserSchema
        """
        http_method = "get".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/meta/schemas/apps/{appInstanceId}/default
            """)

        body = {}
        headers = {}

        request, error = await self._request_executor.create_request(
            http_method, api_url, body, headers, keep_empty_params=True)

        if error:
            return (None, None, error)

        response, error = await self._request_executor\
            .execute(request, UserSchema)

        if error:
            return (None, response, error)

        try:
            result = UserSchema(self.form_response_body(response.get_body()))
        except Exception as error:
            return (None, response, error)
        return (result, response, None)
    async def get_group(self, groupId):
        """
        Lists all group rules for your organization.
        Args:
            group_id {str}
        Returns:
            Group
        """
        http_method = "get".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/groups/{groupId}
            """)

        body = {}
        headers = {}

        request, error = await self._request_executor.create_request(
            http_method, api_url, body, headers)

        if error:
            return (None, None, error)

        response, error = await self._request_executor\
            .execute(request, Group)

        if error:
            return (None, response, error)

        try:
            result = Group(self.form_response_body(response.get_body()))
        except Exception as error:
            return (None, response, error)
        return (result, response, None)
Ejemplo n.º 27
0
    async def get_inline_hook(self, inlineHookId):
        """
        Gets an inline hook by ID
        Args:
            inline_hook_id {str}
        Returns:
            InlineHook
        """
        http_method = "get".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/inlineHooks/{inlineHookId}
            """)

        body = {}
        headers = {}

        request, error = await self._request_executor.create_request(
            http_method, api_url, body, headers)

        if error:
            return (None, None, error)

        response, error = await self._request_executor\
            .execute(request, InlineHook)

        if error:
            return (None, response, error)

        try:
            result = InlineHook(self.form_response_body(response.get_body()))
        except Exception as error:
            return (None, response, error)
        return (result, response, None)
    async def remove_role_from_group(self, groupId, roleId):
        """
        Unassigns a Role from a Group
        Args:
            group_id {str}
            role_id {str}
        """
        http_method = "delete".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/groups/{groupId}/roles/{roleId}
            """)

        body = {}
        headers = {}

        request, error = await self._request_executor.create_request(
            http_method, api_url, body, headers)

        if error:
            return (None, error)

        response, error = await self._request_executor\
            .execute(request)

        if error:
            return (response, error)

        return (response, None)
Ejemplo n.º 29
0
    async def delete_event_hook(
            self, eventHookId,
            keep_empty_params=False
    ):
        """
        Args:
            event_hook_id {str}
        """
        http_method = "delete".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/eventHooks/{eventHookId}
            """)

        body = {}
        headers = {}
        form = {}

        request, error = await self._request_executor.create_request(
            http_method, api_url, body, headers, form, keep_empty_params=keep_empty_params
        )

        if error:
            return (None, error)

        response, error = await self._request_executor\
            .execute(request)

        if error:
            return (response, error)

        return (response, None)
Ejemplo n.º 30
0
    async def delete_domain(self, domainId, keep_empty_params=False):
        """
        Deletes a Domain by `id`.
        Args:
            domain_id {str}
        """
        http_method = "delete".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/domains/{domainId}
            """)

        body = {}
        headers = {}
        form = {}

        request, error = await self._request_executor.create_request(
            http_method,
            api_url,
            body,
            headers,
            form,
            keep_empty_params=keep_empty_params)

        if error:
            return (None, error)

        response, error = await self._request_executor\
            .execute(request)

        if error:
            return (response, error)

        return (response, None)