Skip to content

sift_client.resources.rules

CLASS DESCRIPTION
RulesAPIAsync

High-level API for interacting with rules.

RulesAPIAsync

RulesAPIAsync(sift_client: SiftClient)

Bases: ResourceBase

High-level API for interacting with rules.

This class provides a Pythonic, notebook-friendly interface for interacting with the RulesAPI. It handles automatic handling of gRPC services, seamless type conversion, and clear error handling.

All methods in this class use the Rule class from the low-level wrapper, which is a user-friendly representation of a rule using standard Python data structures and types.

Initialize the RulesAPI.

PARAMETER DESCRIPTION
sift_client

The Sift client to use.

TYPE: SiftClient

METHOD DESCRIPTION
archive

Archive a rule.

create

Create a new rule.

find

Find a single rule matching the given query. Takes the same arguments as list. If more than one rule is found,

get

Get a Rule.

list_

List rules with optional filtering.

unarchive

Unarchive a rule.

update

Update a Rule.

ATTRIBUTE DESCRIPTION
client

TYPE: SiftClient

grpc_client

TYPE: GrpcClient

rest_client

TYPE: RestClient

client property

client: SiftClient

grpc_client property

grpc_client: GrpcClient

rest_client property

rest_client: RestClient

archive async

archive(rule: str | Rule) -> Rule

Archive a rule.

PARAMETER DESCRIPTION
rule

The id or Rule object of the rule to archive.

TYPE: str | Rule

RETURNS DESCRIPTION
Rule

The archived Rule.

create async

create(create: RuleCreate | dict) -> Rule

Create a new rule.

PARAMETER DESCRIPTION
create

A RuleCreate object or dictionary with configuration for the new rule.

TYPE: RuleCreate | dict

RETURNS DESCRIPTION
Rule

The created Rule.

find async

find(**kwargs) -> Rule | None

Find a single rule matching the given query. Takes the same arguments as list. If more than one rule is found, raises an error.

PARAMETER DESCRIPTION
**kwargs

Keyword arguments to pass to list.

DEFAULT: {}

RETURNS DESCRIPTION
Rule | None

The Rule found or None.

get async

get(
    *,
    rule_id: str | None = None,
    client_key: str | None = None,
) -> Rule

Get a Rule.

PARAMETER DESCRIPTION
rule_id

The ID of the rule.

TYPE: str | None DEFAULT: None

client_key

The client key of the rule.

TYPE: str | None DEFAULT: None

RETURNS DESCRIPTION
Rule

The Rule.

list_ async

list_(
    *,
    name: str | None = None,
    names: list[str] | None = None,
    name_contains: str | None = None,
    name_regex: str | Pattern | None = None,
    rule_ids: list[str] | None = None,
    client_keys: list[str] | None = None,
    created_after: datetime | None = None,
    created_before: datetime | None = None,
    modified_after: datetime | None = None,
    modified_before: datetime | None = None,
    created_by: Any | str | None = None,
    modified_by: Any | str | None = None,
    metadata: list[Any] | None = None,
    assets: list[str] | list[Asset] | None = None,
    asset_tags: list[str | Tag] | None = None,
    description_contains: str | None = None,
    include_archived: bool = False,
    filter_query: str | None = None,
    order_by: str | None = None,
    limit: int | None = None,
) -> list[Rule]

List rules with optional filtering.

PARAMETER DESCRIPTION
name

Exact name of the rule.

TYPE: str | None DEFAULT: None

names

List of rule names to filter by.

TYPE: list[str] | None DEFAULT: None

name_contains

Partial name of the rule.

TYPE: str | None DEFAULT: None

name_regex

Regular expression string to filter rules by name.

TYPE: str | Pattern | None DEFAULT: None

client_keys

Client keys of rules to filter to.

TYPE: list[str] | None DEFAULT: None

rule_ids

IDs of rules to filter to.

TYPE: list[str] | None DEFAULT: None

created_after

Rules created after this datetime.

TYPE: datetime | None DEFAULT: None

created_before

Rules created before this datetime.

TYPE: datetime | None DEFAULT: None

modified_after

Rules modified after this datetime.

TYPE: datetime | None DEFAULT: None

modified_before

Rules modified before this datetime.

TYPE: datetime | None DEFAULT: None

created_by

Filter rules created by this User or user ID.

TYPE: Any | str | None DEFAULT: None

modified_by

Filter rules last modified by this User or user ID.

TYPE: Any | str | None DEFAULT: None

metadata

Filter rules by metadata criteria.

TYPE: list[Any] | None DEFAULT: None

assets

Filter rules associated with any of these Assets.

TYPE: list[str] | list[Asset] | None DEFAULT: None

asset_tags

Filter rules associated with any Assets that have these Tag IDs.

TYPE: list[str | Tag] | None DEFAULT: None

description_contains

Partial description of the rule.

TYPE: str | None DEFAULT: None

include_archived

If True, include archived rules in results.

TYPE: bool DEFAULT: False

filter_query

Explicit CEL query to filter rules.

TYPE: str | None DEFAULT: None

order_by

Field and direction to order results by.

TYPE: str | None DEFAULT: None

limit

Maximum number of rules to return. If None, returns all matches.

TYPE: int | None DEFAULT: None

RETURNS DESCRIPTION
list[Rule]

A list of Rules that matches the filter.

unarchive async

unarchive(rule: str | Rule) -> Rule

Unarchive a rule.

PARAMETER DESCRIPTION
rule

The id or Rule object of the rule to unarchive.

TYPE: str | Rule

RETURNS DESCRIPTION
Rule

The unarchived Rule.

update async

update(
    rule: Rule | str,
    update: RuleUpdate | dict,
    *,
    version_notes: str | None = None,
) -> Rule

Update a Rule.

PARAMETER DESCRIPTION
rule

The Rule or rule ID to update.

TYPE: Rule | str

update

Updates to apply to the Rule.

TYPE: RuleUpdate | dict

version_notes

Notes to include in the rule version.

TYPE: str | None DEFAULT: None

RETURNS DESCRIPTION
Rule

The updated Rule.