def METHOD_NAME(catalog_name: Optional[str] = None,
                               device_group_name: Optional[str] = None,
                               filter: Optional[str] = None,
                               maxpagesize: Optional[int] = None,
                               resource_group_name: Optional[str] = None,
                               skip: Optional[int] = None,
                               top: Optional[int] = None,
                               opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableListCatalogDeviceGroupsResult:
    """
    List the device groups for the catalog.
    Azure REST API version: 2022-09-01-preview.
    :param str catalog_name: Name of catalog
    :param str device_group_name: Device Group name.
    :param str filter: Filter the result list using the given expression
    :param int maxpagesize: The maximum number of result items per page.
    :param str resource_group_name: The name of the resource group. The name is case insensitive.
    :param int skip: The number of result items to skip.
    :param int top: The number of result items to return.
    """
    __args__ = dict()
    __args__['catalogName'] = catalog_name
    __args__['deviceGroupName'] = device_group_name
    __args__['filter'] = filter
    __args__['maxpagesize'] = maxpagesize
    __args__['resourceGroupName'] = resource_group_name
    __args__['skip'] = skip
    __args__['top'] = top
    opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke('azure-native:azuresphere:listCatalogDeviceGroups', __args__, opts=opts, typ=ListCatalogDeviceGroupsResult).value
    return AwaitableListCatalogDeviceGroupsResult(
        next_link=pulumi.get(__ret__, 'next_link'),
        value=pulumi.get(__ret__, 'value'))