v4.0 Rule Sets API


TrueSight Network Automation REST API – RuleSetService
The base URL for the API is:

https://serverName:portNumber/bca-networks/api

rule_sets

{{status subtle="false" colour="Blue" title="GET"/}}

 /v4.0/rule_sets
Click here to expand...


Description

Retrieves rule sets, matching any filter criteria or view; may filter by filterable rule set dynamic fields by including query parameters in the form 'filter.dynamicFieldName=value'

Parameters

Name

Located in

Description

Default

Schema

filter.name

query

Filter for rule sets matching this name, asterisk wildcards allowed


string

filter.enabled

query

Filter for enabled or disabled rule sets; when true, returns only enabled rule sets; when false, returns only disabled rule sets; when this filter is absent, no filtering is done


boolean

view

query

Filter for rule sets per the named private or shared view; any input filter.* or orderBy parameters override those settings in the view


string

orderBy

query

Sort by the specified attribute (assignedSpans, enabledFlag, name, or a listable rule set dynamic field name) in the specified order (prefix with a '+' for ascending or a '-' for descending)


string 
Enum: [
 "+assignedSpans",
 "-assignedSpans",
 "+enabledFlag",
 "-enabledFlag",
 "+name",
 "-name"
]

offset

query

Return the specified page number

1

integer

limit

query

Define the number of rows in a page or the maximum number of rule set to return

25

integer

Authorization

header

Authorization token formatted as 'Bearer [token]'


string *

Responses

Code

Description

Schema

200

successful operation

[ 
  RuleSetDTO
]

401

Unauthorized: Failed to provide a suitable Authorization header or accessToken cookie, or the specified user is not logged in


403

Forbidden: Not allowed to access rule sets


404

Not found: No matching view found


500

Internal server error: Unexpected exception occurred


{{status subtle="false" colour="Green" title="POST"/}}

 /v4.0/rule_sets
Click here to expand...


Parameters

Name

Located in

Description

Default

Schema

body

body

Complete attributes of the new rule set


Authorization

header

Authorization token formatted as 'Bearer [token]'


string *

Responses

Code

Description

Schema

201

Created: New rule set successfully added


400

Bad request: Input rule set DTO is missing or new rule set is invalid


401

Unauthorized: Failed to provide a suitable Authorization header or accessToken cookie, or the specified user is not logged in


403

Forbidden: Not allowed to add a new rule set or not allowed to specify an ACL


500

Internal server error: Unexpected exception occurred


{{status subtle="false" colour="Green" title="POST"/}}

 /v4.0/rule_sets/changes_to_acls
Click here to expand...


Parameters

Name

Located in

Description

Default

Schema

body

body

Changes to be made in the access control lists


Authorization

header

Authorization token formatted as 'Bearer [token]'


string *

Responses

Code

Description

Schema

201

OK: Access control lists updated successfully


400

Bad request: Rule set access control lists are not enabled, input DTO is missing or invalid, or a modified rule set is invalid


401

Unauthorized: Failed to provide a suitable Authorization header or accessToken cookie, or the specified user is not logged in


403

Forbidden: Not allowed to manage the access control lists of rule sets,not allowed to modify a particular rule set, or not allowed to grant or revoke a particular right


500

Internal server error: Unexpected exception occurred


{{status subtle="false" colour="Blue" title="GET"/}}

 /v4.0/rule_sets/custom_rights_management_information
Click here to expand...


Parameters

Name

Located in

Description

Default

Schema

Authorization

header

Authorization token formatted as 'Bearer [token]'


string *

Responses

Code

Description

Schema

200

successful operation

400

Bad request: Rule set access control lists are not enabled


401

Unauthorized: Failed to provide a suitable Authorization header or accessToken cookie, or the specified user is not logged in


500

Internal server error: Unexpected exception occurred


{{status subtle="false" colour="Blue" title="GET"/}}

 /v4.0/rule_sets/{nameOrKey
}
Click here to expand...


Parameters

Name

Located in

Description

Default

Schema

nameOrKey

path

Name or database key of the rule set of interest


string *

Authorization

header

Authorization token formatted as 'Bearer [token]'


string *

Responses

Code

Description

Schema

200

successful operation

401

Unauthorized: Failed to provide a suitable Authorization header or accessToken cookie, or the specified user is not logged in


403

Forbidden: Not allowed to access rule sets


404

Not found: No single matching accessible rule set found


500

Internal server error: Unexpected exception occurred


{{status subtle="false" colour="Yellow" title="PUT"/}}

 /v4.0/rule_sets/{nameOrKey
}
Click here to expand...


Parameters

Name

Located in

Description

Default

Schema

nameOrKey

path

Name or Database key of the rule set to be modified


string *

body

body

Complete new attribute values for the rule set; anything left out will be considered to be null and will be nulled out in the rule set; any required dynamic fields missing or null in the input will revert to default values


Authorization

header

Authorization token formatted as 'Bearer [token]'


string *

Responses

Code

Description

Schema

200

successful operation

400

Bad request: Input rule set DTO is missing or modified rule set is invalid


401

Unauthorized: Failed to provide a suitable Authorization header or accessToken cookie, or the specified user is not logged in


403

Forbidden: Not allowed to modify the rule set or not allowed to modify the ACL


404

Not found: No single matching accessible rule set found


500

Internal server error: Unexpected exception occurred


{{status colour="Green" title="POST"/}}

 /v4.0/rule_sets/{nameOrKey
}/copy
Click here to expand...


Parameters

Name

Located in

Description

Default

Schema

nameOrKey

path

Name or database key of the original rule set whose member rules are to be copied


string *

body

body

Complete new attribute values for the rule set; anything left out will be considered to be null and will be nulled out in the rule set; any required dynamic fields missing or null in the input will revert to default values


Authorization

header

Authorization token formatted as 'Bearer [token]'


string *

Responses

Code

Description

Schema

201

Created: New rule set successfully added

400

Bad request: Input rule set DTO is missing or new rule set is invalid


401

Unauthorized: Failed to provide a suitable Authorization header or accessToken cookie, or the specified user is not logged in


403

Forbidden: Not allowed to add a new rule set, or not allowed to specify an ACL, or not allowed to access all of the rules being copied


404

Not found: No single matching accessible rule set found


500

Internal server error: Unexpected exception occurred


{{status subtle="false" colour="Red" title="DELETE"/}}

 /v4.0/rule_sets/{nameOrKey
}
Click here to expand...


Parameters

Name

Located in

Description

Default

Schema

nameOrKey

path

Name or database key of the rule set to be deleted


string *

Authorization

header

Authorization token formatted as 'Bearer [token]'


string *

Responses

Code

Description

Schema

200

successful operation

string

400

Bad request: Rule set is currently in use


401

Unauthorized: Failed to provide a suitable Authorization header or accessToken cookie, or the specified user is not logged in


403

Forbidden: Not allowed to delete the rule set


404

Not found: No single matching accessible rule set found


500

Internal server error: Unexpected exception occurred


{{status subtle="false" colour="Yellow" title="PATCH"/}}

 /v4.0/rule_sets/{nameOrKey
}
Click here to expand...


Parameters

Name

Located in

Description

Default

Schema

nameOrKey

path

Name or database key of the rule set to be modified


string *

body

body

New attribute values for the rule set, in JSON Patch format


Authorization

header

Authorization token formatted as 'Bearer [token]'


string *

Responses

Code

Description

Schema

200

successful operation

400

Bad request: Input JSON patch information is missing or modified rule set is invalid


401

Unauthorized: Failed to provide a suitable Authorization header or accessToken cookie, or the specified user is not logged in


403

Forbidden: Not allowed to modify the rule set or not allowed to modify the ACL


404

Not found: No single matching accessible rule set found


500

Internal server error: Unexpected exception occurred


{{status subtle="false" colour="Green" title="POST"/}}

 /v4.0/rule_sets/{nameOrKey}/disablement
Click here to expand...


Parameters

Name

Located in

Description

Default

Schema

nameOrKey

path

Name or database key of the rule set to be disabled


string *

Authorization

header

Authorization token formatted as 'Bearer [token]'


string *

Responses

Code

Description

Schema

200

successful operation

string

400

Bad request: Rule set is already disabled


401

Unauthorized: Failed to provide a suitable Authorization header or accessToken cookie, or the specified user is not logged in


403

Forbidden: Not allowed to modify the rule set


404

Not found: No single matching accessible rule set found


500

Internal server error: Unexpected exception occurred


{{status subtle="false" colour="Green" title="POST"/}}

 /v4.0/rule_sets/{nameOrKey}/enablement
Click here to expand...


Parameters

Name

Located in

Description

Default

Schema

nameOrKey

path

Name or database key of the rule set to be enabled


string *

Authorization

header

Authorization token formatted as 'Bearer [token]'


string *

Responses

Code

Description

Schema

200

successful operation

string

400

Bad request: Rule set is already enabled


401

Unauthorized: Failed to provide a suitable Authorization header or accessToken cookie, or the specified user is not logged in


403

Forbidden: Not allowed to modify the rule set


404

Not found: No single matching accessible rule set found


500

Internal server error: Unexpected exception occurred



Object Definitions

Object

Schema

AclChangesDTO


Click here to expand...


{ 
    components: [ 
      The components whose access control list is to be updated; components can be groups, rule sets, or templates, which are the types of components that support ACLs 

       ComponentId
    ] * 

     customRights: { 
      The changes to be made to the rights in each component's ACL; this is a map where the key is a right string appropriate to the components, and the value is a flag indicating the type of change to make to the right; for the flag value, a null means no change, a true means grant the right, and a false means revoke the right; when this field is null, the specified roles are set back to default rights 
    } 

     roles: [ 
      The roles whose rights are to be modified in the access control list of each component 

       ComponentId
    ] * 
}

AclDTO

Click here to expand...


{ 
    canEditFlag: boolean 
   {{Whether or not the user is allowed to edit (grant or revoke) the rights for the specified role (read-only) }}

     roleId: ComponentId*
    The role being granted the specified rights 

     rights: [ 
      The rights being granted to the users who belong to the specified role; the right strings used here are specific to the type of component that owns this ACL; when null, means default rights are granted to the role (that is, the rights granted by the role definition, not by this ACL); when non-null but empty, means no rights are granted to the role;otherwise, the specified rights are granted to the role 

       string 
    ] 
}

ComponentId

Click here to expand...


{ 
    id: string 
    The database key of the component; an incoming component can be identified either by its database key, or by its unique name, or by its name with qualifiers which are unique when combined; when this database key is present, it takes precedence and componentName and qualifiers(when present) are used to verify the retrieved component 

     componentName: string 
    The name of the component; an incoming component can be identified either by its database key, or by its unique name, or by its name with qualifiers which are unique when combined; this name is used to verify any component retrieved by database key, and is used if there is no database key or if the database key fails to resolve; for componentType Configuration and HardwareInventory, componentName is the created timestamp (in milliseconds); for componentType SecurityVulnerability, componentName is the securityVulnerabilityID; for componentType SnmpManagerStation, componentName is the address 

     componentType: string * 
    The type of the component, used to verify what is retrieved by key/name; valid values are: Combogroup, Condition, Configuration, Device, DeviceAdapter, DeviceAgent, DeviceSecurityProfile DynamicField, EmailDistributionList, Group, HardwareInventory, JobApprovalType, Keyword, Model, OsImage, PredefinedJob, Realm, RemoteFileServer, Role, Rule, RuleSet, SecurityVulnerability, SnmpManagerStation, Template, and User 

     qualifiers: { 
      Any additional single qualifier needed to identify the component uniquely, when the name alone is not sufficient; the map key is the extra attribute name string; the map value string completes the identification of the component; for componentType Configuration and HardwareInventory: key=deviceKey, value=database key of the device the item belongs to, key=deviceName, value=name of the device the item belongs to, key=timestamp, value=creation date/time in server display format; for componentType DeviceAdapter: key=adapterType, value=type of the device adapter, key=parent, value=parent or owner used for organizing certain types of adapters, key=vendorName, value=name of the vendor that owns a device type; for componentType DynamicField: key=type, value=base class name of the component associated with the dynamic field; for componentType Group, ComboGroup: key=realmName, value=name of the realm the group belongs to; for componentType Model: key=vendorGuid, value=the vendor GUID; for componentType OsImage: key=filename, value=name of the file(s) making up the image; for componentType SecurityVulnerability: key=vendorGuid, value=the vendor GUID 
    } 
}

CustomRightsManagementDTO

Click here to expand...


{ 
    availableCustomRights: [ 
      Full set of rights applicable to a component's ACL 

       string 
    ] 

     components: [ 
      The components whose access control list the user is allowed to edit; components can be groups, rule sets, or templates 

       ComponentId
    ] 

     defaultCustomRights: [ 
      For each role the user is allowed to edit, which of the availableCustomRights are granted by that role 

       PerRoleRightsDTO
    ] 

     grantedCustomRights: [ 
      Of the availableCustomRights, the rights the user is granted, and thus the rights the user is allowed to modify (grant or revoke) in the components 

       string 
    ] 
}

DynamicFieldValueDTO

Click here to expand...


{ 
    id: string 
    The database key of the dynamic field whose value this is (read-only) 

     name: string 
    The name of the dynamic field (read-only) 

     values: [ 
      The value(s) for the dynamic field; for a single-value field, only the first entry is relevant; read-only for Auto Derived and Configuration Profiled types 

       string 
    ] 

     dynamicFieldDetailsLink: string 
    Link to get more detailed information about the dynamic field (read-only) 
}

JsonPatch

Click here to expand...


[ 
    A list of JSON Patch operations 

     JsonPatch.OneOperation
  ]

JsonPatch.OneOperation

JsonPatch.Pointer

Click here to expand...


string 
  Pointer or path to an element or property

JsonPatch.Add

Click here to expand...


{ 
    op: string * 
   Enum: [
     "add"
   ]
    value: any * 
    path: JsonPatch.Pointer*
}

JsonPatch.Remove

Click here to expand...


{ 
    op: string * 
   Enum: [
     "remove"
   ]
    path: JsonPatch.Pointer*
}

JsonPatch.Replace

Click here to expand...


{ 
    op: string * 
   Enum: [
     "replace"
   ]
    value: any * 
    path: JsonPatch.Pointer*
}

JsonPatch.Move

Click here to expand...


{ 
    op: string * 
   Enum: [
     "move"
   ]
    path: JsonPatch.Pointer*
    from: JsonPatch.Pointer*
}

JsonPatch.Copy

Click here to expand...


{ 
    op: string * 
   Enum: [
     "copy"
   ]
    path: JsonPatch.Pointer*
    from: JsonPatch.Pointer*
}

JsonPatch.Test

Click here to expand...


{ 
    op: string * 
   Enum: [
     "test"
   ]
    value: any * 
    path: JsonPatch.Pointer*
}

PerRoleRightsDTO

Click here to expand...


{ 
    role: ComponentId
    A role that can used for editing an ACL 

     rights: [ 
      The rights granted by the role; in case of groups, these are network rights for the realm that the group belongs to 

       string 
    ] 
}

RuleSetDTO

Click here to expand...


{ 
    id: string 
    The rule set's unique database key (read-only) 

     name: string * 
    The rule set's unique display name 

     acl: [ 
      How users can manipulate this rule set, for the accessible roles, containing rule set rights; applicable only when rule set ACLs are enabled in the system parameters; ignored on input if rule set ACLs are disabled; if there are multiple entries for the same role, the rights are combined together; during an update, a null value reverts the custom rights of accessible roles back to default rights 

       AclDTO
    ] 

     assignedGroupFilters: { 
      The names of any groups whose member devices are to be checked against the rules in this rule set; map key is the name of the group (asterisk wildcards allowed); map value is a list of ComponentId containing the realm(s) that own the groups of interest (where a null value means all realms); null when the rule set applies to the entire network 
    } 

     assignedSpanIds: [ 
      The network spans whose member devices are to be checked against the rules in this rule set; null when the rule set applies to the entire network 

       ComponentId
    ] 

     assignedSpans: string 
    String version of the assignedSpanIds and assignedGroupFilters fields, listing the names of the assigned network spans (read-only) 

     assignedToEntireNetworkFlag: boolean 
    Whether or not the rules in this rule set are to be applied to all devices in the system 

     canCopyFlag: boolean 
    Whether or not the user is allowed to copy this rule set (read-only) 

     canDeleteFlag: boolean 
    Whether or not the user is allowed to delete this rule set (read-only) 

     canDisableFlag: boolean 
    Whether or not the user is allowed to disable this rule set (read-only) 

     canEditFlag: boolean 
    Whether or not the user is allowed to edit this rule set (read-only) 

     canEnableFlag: boolean 
    Whether or not the user is allowed to enable this rule set (read-only) 

     enabledFlag: boolean 
    Whether or not the rule set is enabled 

     excludedGroupFilters: { 
      The names of any groups whose member devices are excluded from being checked against all of the rules in this rule set; map key is the name of the group (asterisk wildcards allowed); map value is a list of ComponentId containing the realm(s) that own the groups of interest (where a null value means all realms) 
    } 

     excludedSpanIds: [ 
      Any network spans whose member devices are excluded from being checked against all of the rules in this rule set 

       ComponentId
    ] 

     excludedSpans: string 
    String version of the excludedSpanIds and excludedGroupFilters fields, listing the names of the excluded network spans (read-only) 

     dynamicFields: [ 
      The dynamic fields 

       DynamicFieldValueDTO
    ] 
}

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*

TrueSight Network Automation 24.3