# Replication Rule Methods

class `rucio.client.ruleclient.``RuleClient`(rucio_host=None, auth_host=None, account=None, ca_cert=None, auth_type=None, creds=None, timeout=600, dq2_wrapper=False)

  Bases: `rucio.client.baseclient.BaseClient`

  RuleClient class for working with replication rules

  `RULE_BASEURL` = 'rules'
  `add_replication_rule`(dids, copies, rse_expression, weight=None, lifetime=None, grouping='DATASET', account=None, locked=False, source_replica_expression=None, activity=None, notify='N', purge_replicas=False, ignore_availability=False, comment=None, ask_approval=False, asynchronous=False, priority=3, meta=None)

    Parameters: | dids – The data identifier set. copies – The number of replicas. rse_expression – Boolean string expression to give the list of RSEs. weight – If the weighting option of the replication rule is used, the choice of RSEs takes their weight into account. lifetime – The lifetime of the replication rules (in seconds). grouping – ALL - All files will be replicated to the same RSE. DATASET - All files in the same dataset will be replicated to the same RSE. NONE - Files will be completely spread over all allowed RSEs without any grouping considerations at all. account – The account owning the rule. locked – If the rule is locked, it cannot be deleted. source_replica_expression – RSE Expression for RSEs to be considered for source replicas. activity – Transfer Activity to be passed to FTS. notify – Notification setting for the rule (Y, N, C). purge_replicas – When the rule gets deleted purge the associated replicas immediately. ignore_availability – Option to ignore the availability of RSEs. ask_approval – Ask for approval of this replication rule. asynchronous – Create rule asynchronously by judge-injector. priority – Priority of the transfers. comment – Comment about the rule. meta – Metadata, as dictionary.

  `approve_replication_rule`(rule_id)

    Parameters: | rule_id – Rule to be approved.
    Raises: | RuleNotFound

  `delete_replication_rule`(rule_id, purge_replicas=None)

    Deletes a replication rule and all associated locks.

    Parameters: | rule_id – The id of the rule to be deleted purge_replicas – Immediately delete the replicas.
    Raises: | RuleNotFound, AccessDenied

  `deny_replication_rule`(rule_id)

    Parameters: | rule_id – Rule to be denied.
    Raises: | RuleNotFound

  `examine_replication_rule`(rule_id)

    Examine a replication rule for errors during transfer.

    Parameters: | rule_id – Rule to be denied.
    Raises: | RuleNotFound

  `get_replication_rule`(rule_id, estimate_ttc=False)

    Get a replication rule.

    Parameters: | rule_id – The id of the rule to be retrieved. estimate_ttc – bool, if rule_info should return ttc information
    Raises: | RuleNotFound

  `list_replication_rule_full_history`(scope, name)

    List the rule history of a DID.

    Parameters: | scope – The scope of the DID. name – The name of the DID.

  `move_replication_rule`(rule_id, rse_expression)

    Move a replication rule to another RSE and, once done, delete the original one.

    Parameters: | rule_id – Rule to be moved. rse_expression – RSE expression of the new rule.
    Raises: | RuleNotFound, RuleReplaceFailed

  `reduce_replication_rule`(rule_id, copies, exclude_expression=None)

    Parameters: | rule_id – Rule to be reduced. copies – Number of copies of the new rule. exclude_expression – RSE Expression of RSEs to exclude.
    Raises: | RuleReplaceFailed, RuleNotFound

  `update_replication_rule`(rule_id, options)

    Parameters: | rule_id – The id of the rule to be retrieved. options – Options dictionary.
    Raises: | RuleNotFound