The service capabilities reflect optional functionality of a service. The information is static and does not change during device operation. The following capabilities are available: The maximum number of entries returned by a single Get<Entity>List or Get<Entity> request. The device shall never return more than this number of entities in a single response. Indicates the maximum number of access profiles supported by the device. Indicates the maximum number of access policies per access profile supported by the device. Indicates whether or not several access policies can refer to the same access point in an access profile. Indicates that the client is allowed to supply the token when creating access profiles. To enable the use of the command SetAccessProfile, the value must be set to true. The access policy is an association of an access point and a schedule. It defines when an access point can be accessed using an access profile which contains this access policy. If an access profile contains several access policies specifying different schedules for the same access point will result in a union of the schedules. Reference to the schedule used by the access policy. Reference to the entity used by the rule engine, the entity type may be specified by the optional EntityType field explained below but is typically an access point. Optional entity type; if missing, an access point type as defined by the ONVIF Access Control Service Specification should be assumed. This can also be represented by the QName value “tac:AccessPoint” where tac is the namespace of ONVIF Access Control Service Specification. This field is provided for future extensions; it will allow an access policy being extended to cover entity types other than access points as well. The AccessProfileInfo structure contains basic information about an access profile. The device shall provide the following fields for each access profile instance. A user readable name. It shall be up to 64 characters. User readable description for the access profile. It shall be up to 1024 characters. The access profile structure contains information about the collection of access policies. The device shall include all properties of the AccessProfileInfo structure and also a list of access policies. A list of access policy structures, where each access policy defines during which schedule an access point can be accessed. The capability response message contains the requested access rules service capabilities using a hierarchical XML capability structure. Tokens of AccessProfileInfo items to get. List of AccessProfileInfo items. Maximum number of entries to return. If not specified, less than one or higher than what the device supports, the number of items is determined by the device. Start returning entries from this start reference. If not specified, entries shall start from the beginning of the dataset. StartReference to use in next call to get the following items. If absent, no more items to get. List of AccessProfileInfo items. Tokens of AccessProfile items to get. List of Access Profile items. Maximum number of entries to return. If not specified, less than one or higher than what the device supports, the number of items is determined by the device. Start returning entries from this start reference. If not specified, entries shall start from the beginning of the dataset. StartReference to use in next call to get the following items. If absent, no more items to get. List of Access Profile items. The AccessProfile to create. The Token of created AccessProfile. The details of Access Profile The AccessProfile item to create or modify The token of the access profile to delete. This operation returns the capabilities of the access rules service. This operation requests a list of AccessProfileInfo items matching the given tokens. The device shall ignore tokens it cannot resolve and shall return an empty list if there are no items matching the specified tokens. The device shall not return a fault in this case. If the number of requested items is greater than MaxLimit, a TooManyItems fault shall be returned. This operation requests a list of all of AccessProfileInfo items provided by the device. A call to this method shall return a StartReference when not all data is returned and more data is available. The reference shall be valid for retrieving the next set of data. The number of items returned shall not be greater than the Limit parameter. This operation returns the specified access profile item matching the given tokens. The device shall ignore tokens it cannot resolve and shall return an empty list if there are no items matching specified tokens. The device shall not return a fault in this case. If the number of requested items is greater than MaxLimit, a TooManyItems fault shall be returned. This operation requests a list of all of access profile items provided by the device. A call to this method shall return a StartReference when not all data is returned and more data is available. The reference shall be valid for retrieving the next set of data. The number of items returned shall not be greater than the Limit parameter. This operation creates the specified access profile in the device. The token field of the access profile shall be empty, the service shall allocate a token for the access profile. The allocated token shall be returned in the response. If the client sends any value in the token field, the device shall return InvalidArgVal as generic fault code. In an access profile, if several access policies specifying different schedules for the same access point will result in a union of the schedules. This operation will modify the access profile for the specified access profile token. The token of the access profile to modify is specified in the token field of the AccessProile structure and shall not be empty. All other fields in the structure shall overwrite the fields in the specified access profile. If several access policies specifying different schedules for the same access point will result in a union of the schedules. If the device could not store the access profile information then a fault will be generated. This operation will synchronize an access profile in a client with the device. If an access profile with the specified token does not exist in the device, the access profile is created. If an access profile with the specified token exists, then the access profile is modified. A call to this method takes an access profile structure as input parameter. The token field of the access profile must not be empty. A device that signals support for the ClientSuppliedTokenSupported capability shall implement this command. This operation will delete the specified access profile. If the access profile is deleted, all access policies associated to the access profile will also be deleted. If it is associated with one or more entities some devices may not be able to delete the access profile, and consequently a ReferenceInUse fault shall be generated.