module shcm-service-configuration {
yang-version 1.1;
namespace "http://metaswitch.com/yang/tas-vm-build/shcm-service-configuration";
prefix "shcm-service";
import vm-types {
prefix "vmt";
revision-date 2019-11-29;
}
import ietf-inet-types {
prefix inet;
revision-date 2013-07-15;
}
import extensions {
prefix "yangdoc";
revision-date 2020-12-02;
}
organization "Metaswitch Networks";
contact "rvt-schemas@metaswitch.com";
description "ShCM service configuration schema.";
revision 2019-11-29 {
description
"Initial revision";
reference
"Metaswitch Deployment Definition Guide";
}
typedef cache-strategy-type {
type enumeration {
enum no-cache {
description "Do not use a cache.";
}
enum simple-cache {
description "Use a simple cache.";
}
enum subscription-cache {
description "Use a subscription cache.";
}
}
description "The type used to define the caching strategy.";
}
grouping shcm-service-configuration-grouping {
container diameter-sh {
uses vmt:diameter-configuration-grouping;
description "Diameter Sh configuration.";
yangdoc:change-impact "external";
yangdoc:change-impact "converges";
}
leaf health-check-user-identity {
type vmt:sip-uri-type;
mandatory true;
description "The health check user identity.
This should match a test user configured in the HSS.";
}
leaf-list additional-client-addresses {
type inet:ipv4-address;
description "Optional list of additional allowed ShCM client IP addresses.
These addresses may access the ShCM API port,
in addition to TAS and REM nodes
which automatically have access.";
}
leaf diameter-request-timeout-milliseconds {
type uint32 {
range "909 .. 27273";
}
default 5000;
description "The Diameter request timeout (in milliseconds).";
}
container cassandra-locking {
leaf backoff-time-milliseconds {
type uint32 {
range "50 .. 5000";
}
default 5000;
description "The time (in milliseconds) to backoff before re-attempting to obtain
the lock in Cassandra.";
}
leaf backoff-limit {
type uint32 {
range "1 .. 10";
}
default 5;
description "The limit of times to backoff and re-attempt to obtain a lock in
Cassandra.";
}
leaf hold-time-milliseconds {
type uint32 {
range "1000 .. 30000";
}
default 12000;
description "The time (in milliseconds) to hold a lock in Cassandra.";
}
description "Cassandra locking configuration.";
}
grouping cache-parameters-group {
description "Parameters describing the configuration for this cache.";
leaf cache-validity-time-seconds {
type uint32 {
range "1..172800";
}
mandatory true;
description "Cache validity time (in seconds).";
}
}
container caching {
list service-indications {
key "service-indication";
leaf service-indication {
type string;
mandatory true;
description "Service indication.";
}
leaf cache-strategy {
type cache-strategy-type;
default "subscription-cache";
description "Cache strategy.";
}
container cache-parameters {
when "../cache-strategy != 'no-cache'";
uses "cache-parameters-group";
description "Parameters describing the configuration for this cache.";
}
description "Service indications.";
}
list data-references-subscription-allowed {
key "data-reference";
leaf data-reference {
type enumeration {
enum ims-public-identity {
description "IMS public identity";
}
enum s-cscfname {
description "S-CSCF Name";
}
enum initial-filter-criteria {
description "Initial filter criteria";
}
enum service-level-trace-info {
description "Service level trace info";
}
enum ip-address-secure-binding-information {
description "IP address secure binding information";
}
enum service-priority-level {
description "Service priority level";
}
enum extended-priority {
description "Extended priority";
}
}
mandatory true;
description "The data reference.";
}
leaf cache-strategy {
type cache-strategy-type;
default "subscription-cache";
description "The cache strategy.";
}
container cache-parameters {
when "../cache-strategy != 'no-cache'";
uses "cache-parameters-group";
description "Parameters describing the configuration for this cache.";
}
description "List of data references for which subscription is permitted, and
their caching strategy configuration";
}
list data-references-subscription-not-allowed {
key "data-reference";
leaf data-reference {
type enumeration {
enum charging-information {
description "Charging information";
}
enum msisdn {
description "MS-ISDN";
}
enum psiactivation {
description "PSI activation";
}
enum dsai {
description "DSAI";
}
enum sms-registration-info {
description "SMS registration info";
}
enum tads-information {
description "TADS information";
}
enum stn-sr {
description "STN SR";
}
enum ue-srvcc-capability {
description "UE SRV CC capability";
}
enum csrn {
description "CSRN";
}
enum reference-location-information {
description "Reference location information";
}
}
mandatory true;
description "The data reference.";
}
leaf cache-strategy {
type enumeration {
enum no-cache {
description "Do not use a cache.";
}
enum simple-cache {
description "Use a simple cache.";
}
}
default "simple-cache";
description "The cache strategy.";
}
container cache-parameters {
when "../cache-strategy != 'no-cache'";
uses "cache-parameters-group";
description "Parameters describing the configuration for this cache.";
}
description "List of data references for which subscription is not permitted,
and their caching strategy configuration.";
}
description "Caching configuration.";
}
leaf debug-logging-enabled {
type boolean;
default false;
description "Enable extensive logging for verification and issue diagnosis during
acceptance testing. Must not be enabled in production.";
}
description "ShCM service configuration.";
}
}