Ejemplo n.º 1
0
    def get_all(
        self,
        filter_type=HighRiskEmployeeFilters.OPEN,
        sort_key=None,
        sort_direction=None,
        page_size=_PAGE_SIZE,
    ):
        """Searches High Risk Employee list. Filter results by filter_type.
        `Rest Documentation <https://developer.code42.com/api/#operation/HighRiskEmployeeControllerV2_Search>`__

        Args:
            filter_type (str, optional): Constants available at
                :class:`py42.constants.HighRiskEmployeeFilters`.
                Defaults to ``OPEN``.
            sort_key (str, optional): Sort results based by field. Defaults to None.
            sort_direction (str, optional): ``ASC`` or ``DESC``. Constants available at
                :class:`py42.constants.SortDirection`. Defaults to None.
            page_size (int, optional): The number of high risk employees to return
                per page. Defaults to 100.

        Returns:
            generator: An object that iterates over :class:`py42.response.Py42Response` objects
            that each contain a page of users.
        """

        return get_all_pages(
            self.get_page,
            "items",
            filter_type=filter_type,
            sort_key=sort_key,
            sort_direction=sort_direction,
            page_size=page_size or _PAGE_SIZE,
        )
Ejemplo n.º 2
0
Archivo: cases.py Proyecto: code42/py42
 def get_all(
     self,
     name=None,
     status=None,
     created_at=None,
     updated_at=None,
     subject=None,
     assignee=None,
     page_size=None,
     sort_direction="asc",
     sort_key="number",
     **kwargs,
 ):
     return get_all_pages(
         self.get_page,
         "cases",
         name=name,
         status=status,
         created_at=created_at,
         updated_at=updated_at,
         assignee=assignee,
         subject=subject,
         page_size=page_size,
         sort_direction=sort_direction,
         sort_key=sort_key,
         **kwargs,
     )
Ejemplo n.º 3
0
    def get_all(
        self, active=None, email=None, org_uid=None, role_id=None, q=None, **kwargs
    ):
        """Gets all users.

        Args:
            active (bool, optional): True gets active users only,
                and false gets deactivated users only. Defaults to None.
            email (str, optional): Limits users to only those with this email. Defaults to None.
            org_uid (str, optional): Limits users to only those in the organization with this org
                UID. Defaults to None.
            role_id (int, optional): Limits users to only those with a given role ID. Defaults to
                None.
            q (str, optional): A generic query filter that searches across name, username, and
                email. Defaults to None.

        Returns:
            generator: An object that iterates over :class:`py42.response.Py42Response` objects
            that each contain a page of users.
        """
        return get_all_pages(
            self.get_page,
            "users",
            active=active,
            email=email,
            org_uid=org_uid,
            role_id=role_id,
            q=q,
            **kwargs,
        )
Ejemplo n.º 4
0
 def search_all_pages(self, query):
     return get_all_pages(
         self.get_search_page,
         self._SEARCH_KEY,
         query=query,
         page_size=query.page_size,
     )
Ejemplo n.º 5
0
    def get_all_matters(
        self, creator_user_uid=None, active=True, name=None, hold_ext_ref=None
    ):
        """Gets all existing Legal Hold Matters.
        `REST Documentation <https://console.us.code42.com/apidocviewer/#LegalHold-get>`__

        Args:
            creator_user_uid (str, optional): Find Matters by the identifier of the user who created
                them. Defaults to None.
            active (bool or None, optional): Find Matters by their active state. True returns
                active Matters, False returns inactive Matters, None returns all Matters regardless
                of state. Defaults to True.
            name (str, optional): Find Matters with a 'name' that either equals or contains
                this value. Defaults to None.
            hold_ext_ref (str, optional): Find Matters having a matching external reference field.
                Defaults to None.

        Returns:
            generator: An object that iterates over :class:`py42.response.Py42Response` objects
            that each contain a page of Legal Hold Matters.
        """
        return get_all_pages(
            self.get_matters_page,
            u"legalHolds",
            creator_user_uid=creator_user_uid,
            active=active,
            name=name,
            hold_ext_ref=hold_ext_ref,
        )
Ejemplo n.º 6
0
 def get_all_restore_history(self, days, id_type, id_value, **kwargs):
     return get_all_pages(self._get_restore_history_page,
                          u"restoreEvents",
                          days=days,
                          id_type=id_type,
                          id_value=id_value,
                          **kwargs)
Ejemplo n.º 7
0
    def get_all(
        self,
        filter_type=HighRiskEmployeeFilters.OPEN,
        sort_key=None,
        sort_direction=None,
        page_size=_PAGE_SIZE,
    ):
        """Searches High Risk Employee list. Filter results by filter_type.

        Args:
            filter_type (str, optional): ``EXFILTRATION_30_DAYS``, ``EXFILTRATION_24_HOURS``,
                or ``OPEN``. Constants are available at
                :class:`py42.services.detectionlists.high_risk_employee.HighRiskEmployeeFilters`.
                Defaults to "OPEN".
            sort_key (str, optional): Sort results based by field. Defaults to None.
            sort_direction (str, optional): ``ASC`` or ``DESC``. Constants available at
                :class:`py42.constants.SortDirection`. Defaults to None.
            page_size (int, optional): The number of high risk employees to return
                per page. Defaults to 100.

        Returns:
            generator: An object that iterates over :class:`py42.response.Py42Response` objects
            that each contain a page of users.
        """

        return get_all_pages(
            self.get_page,
            u"items",
            filter_type=filter_type,
            sort_key=sort_key,
            sort_direction=sort_direction,
            page_size=page_size or _PAGE_SIZE,
        )
Ejemplo n.º 8
0
    def get_all(
        self,
        filter_type=DepartingEmployeeFilters.OPEN,
        sort_key=_CREATED_AT,
        sort_direction="DESC",
        page_size=_PAGE_SIZE,
    ):
        """Gets all Departing Employees.

        Args:
            filter_type (str, optional): Constants available at
                :class:`py42.constants.DepartingEmployeeFilters`.
                Defaults to "OPEN".
            sort_key (str, optional): Sort results based by field. Defaults to "CREATED_AT".
            sort_direction (str, optional): ``ASC`` or ``DESC``. Defaults to "DESC".
            page_size (int, optional): The number of departing employees to return
                per page. Defaults to 100.

        Returns:
            generator: An object that iterates over :class:`py42.response.Py42Response` objects
            that each contain a page of departing employees.
        """
        return get_all_pages(
            self.get_page,
            "items",
            filter_type=filter_type,
            sort_key=sort_key,
            sort_direction=sort_direction,
            page_size=page_size or _PAGE_SIZE,
        )
Ejemplo n.º 9
0
    def get_all_matter_custodians(
        self, legal_hold_uid=None, user_uid=None, user=None, active=True
    ):
        """Gets all Legal Hold memberships.

        Each user (Custodian) who has been added to a Legal Hold Matter is returned by the server as
        a LegalHoldMembership object in the response body.  If the object's active state is
        "INACTIVE", they have been removed from the Matter and are no longer subject to the Legal
        Hold retention rules. Users can be Custodians of multiple Legal Holds at once (and thus
        would be part of multiple LegalHoldMembership objects).
        `REST Documentation <https://console.us.code42.com/apidocviewer/#LegalHoldMembership-get>`__

        Args:
            legal_hold_uid (str, optional): Find LegalHoldMemberships for the Legal Hold Matter
                with this unique identifier. Defaults to None.
            user_uid (str, optional): Find LegalHoldMemberships for the user with this identifier.
                Defaults to None.
            user (str, optional): Find LegalHoldMemberships by flexibly searching on username,
                email, extUserRef, or last name. Will find partial matches. Defaults to None.
            active (bool or None, optional): Find LegalHoldMemberships by their active state. True
                returns active LegalHoldMemberships, False returns inactive LegalHoldMemberships,
                None returns all LegalHoldMemberships regardless of state. Defaults to True.

        Returns:
            generator: An object that iterates over :class:`py42.response.Py42Response` objects
            that each contain a page of LegalHoldMembership objects.
        """
        return get_all_pages(
            self.get_custodians_page,
            u"legalHoldMemberships",
            legal_hold_uid=legal_hold_uid,
            user_uid=user_uid,
            user=user,
            active=active,
        )
Ejemplo n.º 10
0
    def get_all_events(
        self, legal_hold_uid=None, min_event_date=None, max_event_date=None
    ):
        """Gets an individual page of Legal Hold events.

        Args:
            legal_hold_uid (str, optional): Find LegalHoldEvents for the Legal Hold Matter
                with this unique identifier. Defaults to None.
            min_event_date (str or int or float or datetime, optional): Find
                LegalHoldEvents whose eventDate is equal to or after this time.
                E.g. yyyy-MM-dd HH:MM:SS. Defaults to None.
            max_event_date (str or int or float or datetime, optional): Find
                LegalHoldEvents whose eventDate is equal to or before this time.
                E.g. yyyy-MM-dd HH:MM:SS. Defaults to None.

        Returns:
            generator: An object that iterates over :class:`py42.response.Py42Response` objects
            that each contain a page of LegalHoldEvent objects.
        """
        return get_all_pages(
            self.get_events_page,
            "legalHoldEvents",
            legal_hold_uid=legal_hold_uid,
            min_event_date=min_event_date,
            max_event_date=max_event_date,
        )
Ejemplo n.º 11
0
 def get_all_rules(self, sort_key=_CREATED_AT, sort_direction=u"DESC"):
     return get_all_pages(
         self.get_rules_page,
         self._RULE_METADATA,
         groups=None,
         sort_key=sort_key,
         sort_direction=sort_direction,
     )
Ejemplo n.º 12
0
def test_get_all_pages_with_no_input_page_size_calls_callback_with_expected_values(
    get_three_three_item_pages, ):
    settings.items_per_page = 3
    for _ in get_all_pages(get_three_three_item_pages, "items"):
        pass

    settings.items_per_page = 500
    verify_calls(get_three_three_item_pages, 3)
Ejemplo n.º 13
0
    def get_all(self, **kwargs):
        """Gets all organizations.

        Returns:
            generator: An object that iterates over :class:`py42.response.Py42Response` objects
            that each contain a page of organizations.
        """
        return get_all_pages(self.get_page, "orgs", **kwargs)
Ejemplo n.º 14
0
def test_get_all_pages_with_input_page_size_greater_than_default_calls_callback_with_expected_values(
    get_three_three_item_pages, ):
    settings.items_per_page = 1
    for _ in get_all_pages(get_three_three_item_pages, "items", page_size=3):
        pass

    settings.items_per_page = 500
    verify_calls(get_three_three_item_pages, 3)
Ejemplo n.º 15
0
    def get_all(self, **kwargs):
        """Gets all organizations.
        `REST Documentation <https://console.us.code42.com/apidocviewer/#Org-get>`__

        Returns:
            generator: An object that iterates over :class:`py42.response.Py42Response` objects
            that each contain a page of organizations.
        """
        return get_all_pages(self.get_page, u"orgs", **kwargs)
Ejemplo n.º 16
0
    def get_all(
        self,
        active=None,
        blocked=None,
        org_uid=None,
        user_uid=None,
        destination_guid=None,
        include_backup_usage=None,
        include_counts=True,
        q=None,
        **kwargs,
    ):
        """Gets all device information.

        When no arguments are passed, all records are returned. To filter results, specify
        respective arguments. For example, to retrieve all active and blocked devices, pass
        active=true and blocked=true.

        Args:
            active (bool, optional): Filters results by device state. When set to True, gets all
                active devices. When set to False, gets all deactivated devices. When set to None
                or excluded, gets all devices regardless of state. Defaults to None.
            blocked (bool, optional): Filters results by blocked status: True or False. Defaults
                to None.
            org_uid (int, optional): The identification number of an Organization. Defaults to None.
            user_uid (int, optional): The identification number of a User. Defaults to None.
            destination_guid (str or int, optional): The globally unique identifier of the storage
                server that the device back up to. Defaults to None.
            include_backup_usage (bool, optional): A flag to denote whether to include the
                destination and its backup stats. Defaults to None.
            include_counts (bool, optional): A flag to denote whether to include total, warning,
                and critical counts. Defaults to True.
            q (str, optional): Searches results flexibly by incomplete GUID, hostname,
                computer name, etc. Defaults to None.

        Returns:
            generator: An object that iterates over :class:`py42.response.Py42Response` objects
            that each contain a page of devices.

            The devices returned by `get_all()` are based on the role and permissions of the user
            authenticating the py42 SDK.
        """

        return get_all_pages(
            self.get_page,
            "computers",
            active=active,
            blocked=blocked,
            org_uid=org_uid,
            user_uid=user_uid,
            destination_guid=destination_guid,
            include_backup_usage=include_backup_usage,
            include_counts=include_counts,
            q=q,
            **kwargs,
        )
Ejemplo n.º 17
0
 def get_all_rules_by_name(
     self, rule_name, sort_key=_CREATED_AT, sort_direction=u"DESC"
 ):
     return get_all_pages(
         self.get_rules_page,
         self._RULE_METADATA,
         groups=[json.loads(str(create_eq_filter_group(u"Name", rule_name)))],
         sort_key=sort_key,
         sort_direction=sort_direction,
     )
Ejemplo n.º 18
0
 def get_rule_by_observer_id(
     self, observer_id, sort_key=_CREATED_AT, sort_direction=u"DESC"
 ):
     results = get_all_pages(
         self.get_rules_page,
         self._RULE_METADATA,
         groups=[
             json.loads(str(create_eq_filter_group(u"ObserverRuleId", observer_id)))
         ],
         sort_key=sort_key,
         sort_direction=sort_direction,
     )
     return next(results)
Ejemplo n.º 19
0
    def get_all_archives_from_value(self, id_value, id_type):
        """Gets archive information from an ID, such as a User UID, Device GUID, or Destination GUID.

        Args:
            id_value (str): Query value for archive.
            id_type (str): API query value description (e.g backupSourceGuid,
                userUid, destinationGuid)

        Returns:
            generator: An object that iterates over :class:`py42.response.Py42Response` objects
            that each contain a page of archives.
        """
        params = {id_type: id_value}
        return get_all_pages(self.get_page, "archives", **params)
Ejemplo n.º 20
0
 def get_all_org_cold_storage_archives(
     self,
     org_id,
     include_child_orgs=True,
     sort_key="archiveHoldExpireDate",
     sort_dir="asc",
 ):
     return get_all_pages(
         self._get_cold_storage_archives_page,
         "coldStorageRows",
         org_id=org_id,
         include_child_orgs=include_child_orgs,
         sort_key=sort_key,
         sort_dir=sort_dir,
     )
Ejemplo n.º 21
0
    def get_all_archives_from_value(self, id_value, id_type):
        """Gets archive information from an ID, such as a User UID, Device GUID, or Destination GUID.
        `REST Documentation <https://console.us.code42.com/apidocviewer/#Archive-get>`__

        Args:
            id_value (str): Query value for archive.
            id_type (str): API query value description (e.g backupSourceGuid,
                userUid, destinationGuid)

        Returns:
            generator: An object that iterates over :class:`py42.response.Py42Response` objects
            that each contain a page of archives.
        """
        params = {u"{}".format(id_type): u"{}".format(id_value)}
        return get_all_pages(self.get_page, u"archives", **params)
Ejemplo n.º 22
0
 def get_all(self,
             begin_time=None,
             end_time=None,
             event_types=None,
             user_ids=None,
             usernames=None,
             user_ip_addresses=None,
             affected_user_ids=None,
             affected_usernames=None,
             **kwargs):
     return get_all_pages(self.get_page,
                          u"events",
                          begin_time=begin_time,
                          end_time=end_time,
                          event_types=event_types,
                          user_ids=user_ids,
                          usernames=usernames,
                          user_ip_addresses=user_ip_addresses,
                          affected_user_ids=affected_user_ids,
                          affected_usernames=affected_usernames,
                          **kwargs)