summaryrefslogtreecommitdiffstats
path: root/azure/aria/aria-extension-cloudify/src/aria/examples/clearwater/types/clearwater.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'azure/aria/aria-extension-cloudify/src/aria/examples/clearwater/types/clearwater.yaml')
-rw-r--r--azure/aria/aria-extension-cloudify/src/aria/examples/clearwater/types/clearwater.yaml728
1 files changed, 0 insertions, 728 deletions
diff --git a/azure/aria/aria-extension-cloudify/src/aria/examples/clearwater/types/clearwater.yaml b/azure/aria/aria-extension-cloudify/src/aria/examples/clearwater/types/clearwater.yaml
deleted file mode 100644
index 1021262..0000000
--- a/azure/aria/aria-extension-cloudify/src/aria/examples/clearwater/types/clearwater.yaml
+++ /dev/null
@@ -1,728 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-imports:
- - ims.yaml
- - smtp.yaml
- - cassandra.yaml
-
-dsl_definitions:
-
- clearwater_operation_dependencies: &CLEARWATER_OPERATION_DEPENDENCIES
- - "ssh.user > { get_property: [ HOST, host, ssh.user ] }"
- - "ssh.password > { get_property: [ HOST, host, ssh.password ] }"
- - "ssh.address > { get_attribute: [ HOST, public_address ] }"
- - "ssh.use_sudo > true"
-
-policy_types:
-
- clearwater.Configuration:
- derived_from: tosca.policies.Root
- properties:
- zone:
- description: >-
- The domain name for SIP addresses, for example if its "example.com" then a SIP address
- could be "6505550243@example.com".
- type: string
- geographically_redundant:
- description: >-
- Enable a geographically redundant deployment.
-
- See: http://clearwater.readthedocs.io/en/stable/Geographic_redundancy.html
- type: boolean
- default: false
- site_name:
- description: >-
- Used by geographically redundant deployments.
- type: string
- required: false
- secret:
- description: >-
- Used for registration via Ellis.
- type: string
-
-capability_types:
-
- clearwater.Container:
- description: >-
- Clearwater container capability.
- derived_from: tosca.capabilities.Container
- properties:
- hostname:
- type: string
- ssh.user:
- type: string
- ssh.password:
- type: string
- max_log_directory_size:
- type: scalar-unit.size
- default: 0 B # 0 means no max size
- reduce_cassandra_mem_usage:
- type: boolean
- default: false
-
- # http://clearwater.readthedocs.io/en/stable/Clearwater_IP_Port_Usage.html
-
- # SIP endpoints
-
- clearwater.Endpoint.SIP.Upstream:
- derived_from: tosca.capabilities.Endpoint
- properties:
- protocol: # override
- type: string
- default: sip
- port: # override
- type: tosca.datatypes.network.PortDef
- default: 5052
-
- clearwater.Endpoint.SIP.Upstream.Secure:
- derived_from: tosca.capabilities.Endpoint
- properties:
- protocol: # override
- type: string
- default: sip
- port: # override
- type: tosca.datatypes.network.PortDef
- default: 5054
- secure: # override
- type: boolean
- default: true
-
- clearwater.Endpoint.SIP.Proxy:
- derived_from: tosca.capabilities.Endpoint
- properties:
- protocol: # override
- type: string
- default: sip
- port: # override
- type: tosca.datatypes.network.PortDef
- default: 5058
-
- clearwater.Endpoint.SIP.Public:
- derived_from: tosca.capabilities.Endpoint.Public
- properties:
- protocol: # override
- type: string
- default: sip
- port: # override
- type: tosca.datatypes.network.PortDef
- default: 5060
-
- clearwater.Endpoint.SIP.Public.Secure:
- derived_from: tosca.capabilities.Endpoint.Public
- properties:
- protocol: # override
- type: string
- default: sip
- port: # override
- type: tosca.datatypes.network.PortDef
- default: 5062
- secure: # override
- type: boolean
- default: true
-
- # STUN endpoints
-
- clearwater.Endpoint.STUN:
- derived_from: tosca.capabilities.Endpoint
- properties:
- protocol: # override
- type: string
- default: stun
- port: # override
- type: tosca.datatypes.network.PortDef
- default: 3478
-
- # Diameter endpoints
-
- clearwater.Endpoint.Diameter.HSS:
- description: >-
- In shared_config: hs_listen_port
- derived_from: tosca.capabilities.Endpoint
- properties:
- protocol: # override
- type: string
- default: diameter
- port: # override
- type: tosca.datatypes.network.PortDef
- default: 3868
-
- clearwater.Endpoint.Diameter.CTF:
- description: >-
- In shared_config: ralf_listen_port
- derived_from: tosca.capabilities.Endpoint
- properties:
- protocol: # override
- type: string
- default: diameter
- port: # override
- type: tosca.datatypes.network.PortDef
- default: 3869
-
- # Management endpoints
-
- clearwater.Endpoint.Management.Homer:
- derived_from: ims.interfaces.HTTP
- properties:
- port: # override
- type: tosca.datatypes.network.PortDef
- default: 7888
-
- clearwater.Endpoint.Management.Homestead:
- derived_from: ims.interfaces.HTTP
- properties:
- port: # override
- type: tosca.datatypes.network.PortDef
- default: 8888
-
- clearwater.Endpoint.Management.Homestead.Provisioning:
- description: >-
- In shared_config: homestead_provisioning_port
- derived_from: ims.interfaces.HTTP
- properties:
- port: # override
- type: tosca.datatypes.network.PortDef
- default: 8889
-
- clearwater.Endpoint.Management.Sprout:
- derived_from: ims.interfaces.HTTP
- properties:
- port: # override
- type: tosca.datatypes.network.PortDef
- default: 9886
-
- clearwater.Endpoint.Management.Ralf:
- derived_from: ims.interfaces.HTTP
- properties:
- port: # override
- type: tosca.datatypes.network.PortDef
- default: 9888 # note: some documentation shows 10888
-
- # Web endpoints
-
- clearwater.Endpoint.Public.Web:
- derived_from: tosca.capabilities.Endpoint.Public
- properties:
- protocol: # override
- type: string
- default: http
- port: # override
- type: tosca.datatypes.network.PortDef
- default: 80
- url_path: # override
- type: string
- default: /
-
- clearwater.Endpoint.Public.Web.Secure:
- derived_from: tosca.capabilities.Endpoint.Public
- properties:
- protocol: # override
- type: string
- default: https
- port: # override
- type: tosca.datatypes.network.PortDef
- default: 443
- secure: # override
- type: boolean
- default: true
- url_path: # override
- type: string
- default: /
-
- # Other endpoints
-
- clearwater.Endpoint.Chronos:
- derived_from: tosca.capabilities.Endpoint
- properties:
- port: # override
- type: tosca.datatypes.network.PortDef
- default: 7253
-
- clearwater.Endpoint.Memcached:
- derived_from: tosca.capabilities.Endpoint
- properties:
- port: # override
- type: tosca.datatypes.network.PortDef
- default: 11211
-
- clearwater.Endpoint.Astaire:
- derived_from: tosca.capabilities.Endpoint
- properties:
- port: # override
- type: tosca.datatypes.network.PortDef
- default: 11311
-
-data_types:
-
- clearwater.Number:
- derived_from: string
- constraints:
- - pattern: '^\d{10}$'
-
-node_types:
-
- # http://clearwater.readthedocs.io/en/stable/Clearwater_Architecture.html
-
- clearwater.SoftwareComponent:
- description: >-
- Clearwater software components must be installed in a Clearwater-capable compute node.
- derived_from: tosca.nodes.SoftwareComponent
- requirements:
- - host: # override
- capability: clearwater.Container
- relationship: tosca.relationships.HostedOn
-
- clearwater.Bono:
- description: >-
- Clearwater edge proxy.
-
- The Bono nodes form a horizontally scalable SIP edge proxy providing both a SIP IMS Gm
- compliant interface and a WebRTC interface to clients. Client connections are load balanced
- across the nodes. The Bono node provides the anchor point for the client's connection to the
- Clearwater system, including support for various NAT traversal mechanisms. A client is
- therefore anchored to a particular Bono node for the duration of its registration, but can
- move to another Bono node if the connection or client fails.
-
- Clients can connect to Bono using SIP/UDP or SIP/TCP. Bono supports any WebRTC client that
- performs call setup signaling using SIP over WebSocket.
-
- Alternatively, Clearwater can be deployed with a third party P-CSCF or Session Border
- Controller implementing P-CSCF. In this case Bono nodes are not required.
- derived_from: clearwater.SoftwareComponent
- capabilities:
- p-cscf: ims.functions.P-CSCF
- gm: ims.interfaces.Gm
- sip_endpoint: clearwater.Endpoint.SIP.Public
- sip_secure_endpoint: clearwater.Endpoint.SIP.Public.Secure
- sip_proxy: clearwater.Endpoint.SIP.Proxy # open to Sprout
- stun_endoint: clearwater.Endpoint.STUN
- requirements:
- - sip_downstream:
- capability: clearwater.Endpoint.SIP.Upstream
- occurrences: [ 0, UNBOUNDED ]
- - sip_secure_downstream:
- capability: clearwater.Endpoint.SIP.Upstream.Secure
- occurrences: [ 0, UNBOUNDED ]
- - ralf: # for billable events
- capability: clearwater.Endpoint.Management.Ralf
- occurrences: [ 0, 1 ]
- interfaces:
- Standard:
- type: tosca.interfaces.node.lifecycle.Standard
- create:
- implementation:
- primary: scripts/bono/create.sh
- dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
- delete:
- implementation:
- primary: scripts/bono/delete.sh
- dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
-
- clearwater.Sprout:
- description: >-
- Clearwater SIP router.
-
- The Sprout nodes act as a horizontally scalable, combined SIP registrar and authoritative
- routing proxy, and handle client authentication and the ISC interface to application servers.
- The Sprout nodes also contain the in-built MMTEL application server. SIP transactions are load
- balanced across the Sprout cluster, so there is no long-lived association between a client and
- a particular Sprout node. Sprout does not store any long-lived data itself and instead uses
- web service interfaces to Homestead and Homer to retrieve HSS configuration such as
- authentication data/user profiles and MMTEL service settings APIs to Vellum for storing
- subscriber registration data and for running timers.
-
- Sprout is where the bulk of the I-CSCF and S-CSCF function resides, with the remainder
- provided by Dime (and backed by the long-lived data stores on Vellum).
- derived_from: clearwater.SoftwareComponent
- capabilities:
- sip_endpoint: clearwater.Endpoint.SIP.Upstream # open to Bono
- sip_secure_endpoint: clearwater.Endpoint.SIP.Upstream.Secure # open to Bono
- management_endpoint: clearwater.Endpoint.Management.Sprout
- memento:
- type: tosca.capabilities.Container
- valid_source_types: [ clearwater.Memento ]
- requirements:
-# cyclical: see ARIA-327
-# - sip_upstream:
-# capability: clearwater.Endpoint.SIP.Proxy
-# occurrences: [ 0, UNBOUNDED ]
- - homer: # for subscriber profiles
- capability: clearwater.Endpoint.Management.Homer
- - ralf: # for billable events
- capability: clearwater.Endpoint.Management.Ralf
- occurrences: [ 0, 1 ]
- - chronos:
- capability: clearwater.Endpoint.Chronos
- node: clearwater.Vellum
- - astaire:
- capability: clearwater.Endpoint.Astaire
- node: clearwater.Vellum
- interfaces:
- Standard:
- type: tosca.interfaces.node.lifecycle.Standard
- create:
- implementation:
- primary: scripts/sprout/create.sh
- dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
- delete:
- implementation:
- primary: scripts/sprout/delete.sh
- dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
-
- clearwater.Memento:
- derived_from: tosca.nodes.Root
- capabilities:
- sip-as: ims.functions.SIP-AS
- web_secure_endpoint: clearwater.Endpoint.Public.Web.Secure
- requirements:
- - host:
- capability: tosca.capabilities.Container
- node: clearwater.Sprout
- - cassandra_thrift:
- capability: cassandra.Endpoint.Thrift
- node: clearwater.Vellum
- interfaces:
- Standard:
- type: tosca.interfaces.node.lifecycle.Standard
- create:
- implementation:
- primary: scripts/memento/create.sh
- dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
- delete:
- implementation:
- primary: scripts/memento/delete.sh
- dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
-
- clearwater.Dime:
- description: >-
- Clearwater Diameter gateway.
-
- Dime nodes run Clearwater's Homestead and Ralf components.
- derived_from: clearwater.SoftwareComponent
- capabilities:
- host:
- type: tosca.capabilities.Container
- valid_source_types: [ clearwater.DimeSoftwareComponent ]
- interfaces:
- Standard:
- type: tosca.interfaces.node.lifecycle.Standard
- create:
- implementation:
- primary: scripts/dime/create.sh
- dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
- delete:
- implementation:
- primary: scripts/dime/delete.sh
- dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
-
- clearwater.DimeSoftwareComponent:
- description: >-
- Base type for Dime software components.
- derived_from: clearwater.SoftwareComponent
- requirements:
- - host: # override
- capability: tosca.capabilities.Container
- node: clearwater.Dime
-
- clearwater.Homestead:
- description: >-
- Clearwater HSS cache.
-
- Homestead provides a web services interface to Sprout for retrieving authentication
- credentials and user profile information. It can either master the data (in which case it
- exposes a web services provisioning interface) or can pull the data from an IMS compliant HSS
- over the Cx interface. The Homestead nodes themselves are stateless - the mastered / cached
- subscriber data is all stored on Vellum (via Cassandra's Thrift interface).
-
- In the IMS architecture, the HSS mirror function is considered to be part of the I-CSCF and
- S-CSCF components, so in Clearwater I-CSCF and S-CSCF function is implemented with a
- combination of Sprout and Dime clusters.
- derived_from: clearwater.DimeSoftwareComponent
- capabilities:
- hss: ims.functions.HSS
- cx: ims.interfaces.Cx
- diameter_endpoint: clearwater.Endpoint.Diameter.HSS
- management_endpoint: clearwater.Endpoint.Management.Homestead # open to Ellis
- provisioning_management_endpoint: clearwater.Endpoint.Management.Homestead.Provisioning # open to Ellis
- requirements:
- - cassandra_thrift:
- capability: cassandra.Endpoint.Thrift
- node: clearwater.Vellum
- interfaces:
- Standard:
- type: tosca.interfaces.node.lifecycle.Standard
- create:
- implementation:
- primary: scripts/homestead/create.sh
- dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
- delete:
- implementation:
- primary: scripts/homestead/delete.sh
- dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
-
- clearwater.Ralf:
- description: >-
- Clearwater CTF.
-
- Ralf provides an HTTP API that both Bono and Sprout can use to report billable events that
- should be passed to the CDF (Charging Data Function) over the Rf billing interface. Ralf is
- stateless, using Vellum to maintain the long lived session state and run the timers necessary
- to enable it to conform to the Rf protocol.
- derived_from: clearwater.DimeSoftwareComponent
- capabilities:
- ctf: ims.functions.CTF
- rf: ims.interfaces.Rf
- diameter_endpoint: clearwater.Endpoint.Diameter.CTF
- management_endpoint: clearwater.Endpoint.Management.Ralf # open to Sprout, Bono, Vellum
- requirements:
- - chronos:
- capability: clearwater.Endpoint.Chronos
- node: clearwater.Vellum
- - astaire:
- capability: clearwater.Endpoint.Astaire
- node: clearwater.Vellum
- interfaces:
- Standard:
- type: tosca.interfaces.node.lifecycle.Standard
- create:
- implementation:
- primary: scripts/ralf/create.sh
- dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
- delete:
- implementation:
- primary: scripts/ralf/delete.sh
- dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
-
- clearwater.Vellum:
- description: >-
- Clearwater state store.
-
- Vellum is used to maintain all long-lived state in the deployment. It does this by running a
- number of cloud optimized, distributed storage clusters.
-
- - Cassandra. Cassandra is used by Homestead to store authentication credentials and profile
- information, and is used by Homer to store MMTEL service settings. Vellum exposes Cassandra's
- Thrift API.
-
- - etcd. etcd is used by Vellum itself to share clustering information between Vellum nodes and
- by other nodes in the deployment for shared configuration.
-
- - Chronos. Chronos is a distributed, redundant, reliable timer service developed by
- Clearwater. It is used by Sprout and Ralf nodes to enable timers to be run (e.g. for SIP
- Registration expiry) without pinning operations to a specific node (one node can set the timer
- and another act on it when it pops). Chronos is accessed via an HTTP API.
-
- - Memcached / Astaire. Vellum also runs a Memcached cluster fronted by Astaire. Astaire is a
- service developed by Clearwater that enabled more rapid scale up and scale down of memcached
- clusters. This cluster is used by Sprout and Ralf for storing registration and session state.
- derived_from: clearwater.SoftwareComponent
- capabilities:
- cassandra_endpoint: cassandra.Endpoint # open to other Vellum
- cassandra_thrift_endpoint: cassandra.Endpoint.Thrift # open to Homer, Dime (Homestead), Sprout (Memento)
- chronos_endpoint: clearwater.Endpoint.Chronos # open to other Vellum, Sprout, Dime (Ralf)
- memcached_endpoint: clearwater.Endpoint.Memcached # open to other Vellum
- astaire_endpoint: clearwater.Endpoint.Astaire # open to Sprout, Dime (Ralf)
-# cyclical: see ARIA-327
-# requirements:
-# - ralf:
-# capability: clearwater.Endpoint.Management.Ralf
-# occurrences: [ 0, 1 ]
- interfaces:
- Standard:
- type: tosca.interfaces.node.lifecycle.Standard
- create:
- implementation:
- primary: scripts/vellum/create.sh
- dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
- delete:
- implementation:
- primary: scripts/vellum/delete.sh
- dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
-
- clearwater.Homer:
- description: >-
- Clearwater XDMS.
-
- Homer is a standard XDMS used to store MMTEL service settings documents for each user of the
- system. Documents are created, read, updated and deleted using a standard XCAP interface. As
- with Homestead, the Homer nodes use Vellum as the data store for all long lived data.
- derived_from: clearwater.SoftwareComponent
- capabilities:
- xdms: ims.functions.XDMS
- management_endpoint: clearwater.Endpoint.Management.Homer # open to Sprout, Ellis
- requirements:
- - cassandra_thrift:
- capability: cassandra.Endpoint.Thrift
- node: clearwater.Vellum
- interfaces:
- Standard:
- type: tosca.interfaces.node.lifecycle.Standard
- create:
- implementation:
- primary: scripts/homer/create.sh
- dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
- delete:
- implementation:
- primary: scripts/homer/delete.sh
- dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
-
- clearwater.Ellis:
- description: >-
- Ellis is a sample provisioning portal providing self sign-up, password management, line
- management and control of MMTEL service settings. It is not intended to be a part of
- production Clearwater deployments (it is not easy to horizontally scale because of the MySQL
- underpinnings for one thing) but to make the system easy to use out of the box.
- derived_from: clearwater.SoftwareComponent
- properties:
- provision_numbers_start:
- type: clearwater.Number
- default: '6505550000'
- provision_numbers_count:
- type: integer
- default: 0 # 0 means do not provision numbers
- constraints:
- - greater_or_equal: 0
- capabilities:
- web_endpoint: clearwater.Endpoint.Public.Web
- web_secure_endpoint: clearwater.Endpoint.Public.Web.Secure
- requirements:
- - homer: # for subscriber profiles
- capability: clearwater.Endpoint.Management.Homer
- - homestead: # for subscriber authentication
- capability: clearwater.Endpoint.Management.Homestead
- - homestead_provisioning:
- capability: clearwater.Endpoint.Management.Homestead.Provisioning
- - ralf: # TODO: really?
- capability: clearwater.Endpoint.Management.Ralf
- occurrences: [ 0, 1 ]
- - smtp:
- capability: smtp.SMTP
- interfaces:
- Standard:
- type: tosca.interfaces.node.lifecycle.Standard
- create:
- implementation:
- primary: scripts/ellis/create.sh
- dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
- configure:
- implementation:
- primary: scripts/ellis/configure.sh
- dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
- delete:
- implementation:
- primary: scripts/ellis/delete.sh
- dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
-
- clearwater.I-CSCF:
- description: >-
- Clearwater I-CSCF.
-
- Logical node encompassing Sprout and Homestead. Required only if you need to expose the I-CSCF
- function.
- derived_from: tosca.nodes.Root
- capabilities:
- i-cscf: ims.functions.I-CSCF
- requirements:
- - sprout:
- capability: tosca.capabilities.Node
- node: clearwater.Sprout
- - homestead:
- capability: tosca.capabilities.Node
- node: clearwater.Homestead
-
- clearwater.S-CSCF:
- description: >-
- Clearwater S-CSCF.
-
- Logical node encompassing Sprout and Homestead. Required only if you need to expose the S-CSCF
- function.
- derived_from: tosca.nodes.Root
- capabilities:
- s-cscf: ims.functions.S-CSCF
- requirements:
- - sprout:
- capability: tosca.capabilities.Node
- node: clearwater.Sprout
- - homestead:
- capability: tosca.capabilities.Node
- node: clearwater.Homestead
-
- clearwater.LiveTest:
- derived_from: tosca.nodes.SoftwareComponent
- interfaces:
- Standard:
- type: tosca.interfaces.node.lifecycle.Standard
- create:
- implementation:
- primary: scripts/live-test/create.sh
- dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
- delete:
- implementation:
- primary: scripts/live-test/delete.sh
- dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
-
- clearwater.HostBase:
- derived_from: tosca.nodes.Compute
- interfaces:
- Standard:
- type: tosca.interfaces.node.lifecycle.Standard
- configure:
- implementation:
- primary: scripts/host-base/configure.sh
- dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
- capabilities:
- host: # override
- type: clearwater.Container
- valid_source_types: [ tosca.nodes.SoftwareComponent ]
- os: # override
- type: tosca.capabilities.OperatingSystem
- properties:
- architecture:
- type: string
- default: x86_64
- type:
- type: string
- default: linux
- distribution:
- type: string
- default: ubuntu
- version:
- type: version
- default: 14.04
-
- clearwater.Host:
- description: >-
- Default Clearwater host.
-
- Note that any node can function as a Clearwater host as long as it has a clearwater.Container
- capability.
- derived_from: clearwater.HostBase
- capabilities:
- host: # override
- type: clearwater.Container
- valid_source_types: [ tosca.nodes.SoftwareComponent ]
- properties:
- mem_size:
- type: scalar-unit.size
- constraints:
- - greater_or_equal: 0 MB
- default: 4 GB # will run out of memory with less than this
- interfaces:
- Standard:
- type: tosca.interfaces.node.lifecycle.Standard
- configure:
- implementation:
- primary: scripts/host/configure.sh
- dependencies: *CLEARWATER_OPERATION_DEPENDENCIES